我正在尝试在我的 Ionic4 应用程序中做一些非常基本的事情 - 将数据发布到 Asp.Net Web API 2 界面。请求成功,但是服务器上没有收到数据。
import { HttpClient } from '@angular/common/http';
someAction(assetId: number) {
let asset = new FormData();
asset.append("assetId", assetId.toString());
asset.append("UserId", "1");
return this.httpClient.post(this.url + "SomeAction", asset, { headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } }).toPromise();
}
在服务器上(C#):
[HttpPost]
[Route("Service/SomeAction")]
public HttpResponseMessage SomeAction(AccessData asset)
{
return new HttpResponseMessage(_service.LogAsset(asset));
}
该asset
服务器上的对象实例化,但不包含客户端发送的值。
此外,删除/更改发送的标头会导致请求完全失败。
编辑:删除标题会导致错误 404,并且在控制台中也有这个:
从源“ http://localhost ”访问“ http://server ”的XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。
将标头更改为“multipart/form-data”会导致错误 415 - 不支持的媒体类型
编辑 #2:这适用于 Postman 和 HTTPBot (iPhone),但不适用于我的 Ionic 应用程序
更新:我最终通过启用 CORS 解决了这个问题。我已经启用了 CORSweb.config
并期望它就足够了,但事实证明我实际上需要安装Microsoft.AspNet.WebApi.Cors
包并将[EnableCors]
属性添加到我的 post 方法中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句