我的工作相互e.g A和B.角2 +网页API - 发布数据不能正常工作
在项目链接的两个项目 - 我实现了实体框架,从数据库中提取数据。
在项目B中 - 我已经实现了Angular 2,从项目A获取数据并将其显示在屏幕上(客户端)。
这两个项目都与API连接。项目B的API调用项目A的API从数据库获取数据并显示到屏幕(客户端)。取数据'GET'请求正常工作。
问题:当用户填写表单并发布数据时,'POST'方法不起作用。如果我在项目B中实现相同的[HttpPost]方法,那么它正在工作,但我想要将数据发布到项目B的方法。
更容易明白,我已经试过下面图形来实现这样的情况:(高亮红色部分不工作)
与角2,发布数据的工作如下罚款:
return this.http
.post(projectAUrl, JSON.stringify({ stateName: stateName }), { headers: this.headers })
.toPromise()
.then(res => res.json().data as AnalyticsState)
[HttpPost]法在项目A的控制器实现如下:
[Route("api/States")]
[HttpPost]
public IHttpActionResult PostSaveState([FromBody]string stateName)
{
return null;
}
提交表格后,这种方法不触发A计划(通过把断点试过),同样的方法工作,如果我在B项目的实施
我必须做这两个项目的API东西发布数据或我错过了一些愚蠢的事情来实现发布数据到数据库?新的dotNet核心和角2,试图了解项目流程。
注意:我不想在项目B中实现实体框架。项目流程应该与附加图像相同。
到目前为止,我尝试了很多东西,但没有运气,几个环节是:
httpclient call to webapi to post data not working
.NET MVC 4 WebAPI POST not working
https://angular.io/docs/ts/latest/tutorial/toh-pt6.html
工作:下面从项目获取数据角功能A工作正常。
getStates() {
let ProjectAUrl = 'http://localhost:9043/api/GetStates';
return this.http.get(ProjectAUrl)
.map(res=>res.json()
.subscribe(States => this.States = States);
}
不工作:当用户提交表单,我打电话以下角度的功能。在下面的函数中,如果我使用ProjectBUrl,控件将进入项目B的控制器方法(我不想)。但是,如果我使用ProjectAUrl,控件不会发送到项目A的控制器。
SaveState(stateName: string): Promise<State> {
let ProjectAUrl = 'http://localhost:9043/api/States?stateName='+stateName+'';
let ProjectBUrl = 'api/States?stateName='+stateName+'';
return this.http
.post(ProjectAUrl , JSON.stringify({ stateName: stateName }), { headers: this.headers })
.toPromise()
.then(res => res.json().data as State)
.catch(this.handleError);
}
那么有没有可能直接从项目B的角度函数调用项目A的控制器方法? 或将角度控制功能传递给项目B的控制器,然后从项目B的控制器调用项目A的控制器。
对不起,让它有点混乱和复杂!但任何帮助将不胜感激。
任何想法如何在Angular 2中通过API发布数据?
您正在发布一个对象,但您希望从API中获取一个字符串参数。另外,如果我在项目B中实现,同样的方法正在工作,你不需要stringfy – Fals
'。你的意思是有些方法通过B到A,但是Angular有时直接直接访问A?看起来Angular知道这两个API。 – Win
嗨@Win,谢谢你的回复。我更新了我的问题,更详细地实现了获取和发布数据的角度2函数。我只是通过调用url来调用Project A。 – Riddhi