405(方法不允许)用于角度的 POST 方法



我正在尝试发送一个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除了getfor post 方法之外。 如果使用 get in 操作名称,则变为 get 方法

相关内容

  • 没有找到相关文章

最新更新