2017-01-03 60 views
0

我有一个问题,当我尝试将json对象发布到restfull api时,它不起作用。从angular2发布json到宁静的webapi

我已经搜遍遍地,并尝试了很多,但没有成功。可以enyone帮我一下吧,这里是从angular2

postContact(contact: IContact){ 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let body = JSON.stringify(contact); 
    return this._http.post(this._contactenlijstUrl, body, headers).map((res: Response) => res.json()).subscribe(); 

这里的代码是从的WebAPI

[HttpPost] 
     public IActionResult VoegPersoonToe([FromBody]JObject test) 
     { 
      try 
      { 
       .... Here i have to create a class and import the json object... 

       return Ok(); 
      } 
      catch (Exception) 
      { 

       return BadRequest(); 
      } 
     } 

代码当我运行代码,我得到这个错误:

角2正在开发模式下运行。调用enableProdMode()以启用生产模式。 http://localhost:39468/api/contacten/无法加载资源:3462 EXCEPTION:415不支持的媒体类型的URL:与状态响应http://localhost:39468/api/contacten/ ErrorHandler.handleError @ core.umd服务器以415(不支持的媒体类型) core.umd.js状态回应.js文件:3462 Subscriber.ts:241Uncaught响应

THX的帮助

回答

0

您不要在RequestOptions传递给POST方法,你把标题改为!试试这个:

return this._http.post(this._contactenlijstUrl, body, options).map((res: Response) => res.json()).subscribe(); 
+0

我做了你想要的但没有好的结果:Angular 2运行在开发模式下。调用enableProdMode()以启用生产模式。 2http:// localhost:39468/api/contacten /加载资源失败:服务器响应的状态为415(Unsupported Media Type) nieuwContact:1 XMLHttpRequest无法加载http:// localhost:39468/api/contacten/。预检的响应具有无效的HTTP状态代码415 core.umd.js:3462 EXCEPTION:状态响应:0表示URL:null ErrorHandler.handleError @ core.umd.js:3462 Subscriber.ts:241Uncaught响应 –

+0

'错误消息中的“预检”表示您有跨源资源共享(CORS)问题。根据您的服务器和基础设施,处理此问题的方式可能会有所不同 – StephaneM

+0

那里确实是asp.net核心里的CORS,哪里设置不好! Thx的建议 –