我正在尝试发送一个POST
,并将GET
请求从角度到 .Net Web api 项目 GET 请求工作正常,但是当涉及到POST
请求时它不起作用,它给了我以下错误,
选项 http://localhost:2073/api/MyAttendance/GetEvent 405(方法 不允许(访问 XMLHttpRequest at "http://localhost:2073/api/MyAttendance/GetEvent"来自原产地 "http://localhost:4200"已被 CORS 策略阻止:对 预检请求未通过访问控制检查:它没有 HTTP 正常状态。
波纹管是我POST
要求,
在component.ts
getDate() {
let dateList: any = {};
dateList.startDate = this.startDate;
dateList.endDate = this.endDate;
this._lkassetsService.getEventDetails(JSON.stringify(dateList)).subscribe((eventData: any) => {
this.msg = eventData;
});
}
在service.ts
getEventDetails(dateList: any): Observable<any> {
return this._http.post('http://localhost:2073/api/MyAttendance/GetEvent', dateList, {
headers:new HttpHeaders({
'Content-Type': 'application/json'
})
});
}
波纹管是我从后端发出的.net Web API请求
[HttpPost]
[Route("api/MyAttendance/GetEvent")]
public string Event([FromBody]object Text)
{
return "Success";
}
这个请求在邮递员身上工作正常,在我的web.cong
文件(.net web api(中,我添加了以下代码,
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
而且如果我使用'Content-Type': 'application/x-www-form-urlencoded'
而不是'Content-Type': 'application/json'
它工作正常,但输出将为空,但我想以json
格式输出
我不知道这个问题,如果有人可以帮助我,我将不胜感激。我看到了很多解决方案,但没有奏效
我在项目中遇到了这个问题。我成功的方式是在 API 端进行这些更改。(我们的.NET框架版本是4.6.1(
在 web.config 中
<appSettings>
<add key="Cors-Origins" value="http://localhost:4200" />
</appSettings>
in WebApiConfig.cs:
string origins = ConfigurationManager.AppSettings["Cors-Origins"];
config.EnableCors(new EnableCorsAttribute(origins, "*", "*") {SupportsCredentials = true});
不要使用操作名称,GetEvent
除了get
for post 方法之外。 如果使用 get in 操作名称,则变为 get 方法