【发布时间】:2020-06-08 04:38:42
【问题描述】:
我在我的 web api 应用程序中启用了 CORS
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
所有请求都运行良好。但是when i pass an object to the post method 我明白了:
跨域请求被阻止:同源策略不允许读取位于http://localhost:44367/api/Users/Create 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
// WORKING
return axios.post(url)
return axios.get(url)
// NOT WORKING
let model = {
firstName: 'a',
}
return axios.post(url, model);
// or with configuration
let axiosConfig = {
headers: {
'Content-Type': 'application/json;charset=UTF-8',
"Access-Control-Allow-Origin": true,
"Access-Control-Allow-Credentials": true,
}
};
return axios.post(url, model, axiosConfig);
也可以使用邮递员发帖,使用以下正文
//{
// "model" : {
// "name":"firstName"
// }
//}
我在Application_BeginRequest 事件中设置了一个断点,它不会命中。
控制器动作
public ClientResponseModel<User> Create([FromBody]UserAddModel model)
{
///.....
}
请求标头
Host: localhost:44367
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0
Accept: */*
Accept-Language: en,en-US;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: access-control-allow-credentials,access-control-allow-origin,content-type
Referer: http://localhost:44346/Registration.aspx
Origin: http://localhost:44346
Connection: keep-alive
响应头
HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/10.0
Public: OPTIONS, TRACE, GET, HEAD, POST
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcYWxpLmtcc291cmNlXEF6dXJlXExlYmFuZXNlTGF3c1xDTVNcYXBpXFVzZXJzXENyZWF0ZQ==?=
X-Powered-By: ASP.NET
Date: Mon, 24 Feb 2020 13:56:15 GMT
Content-Length: 0
非常感谢任何帮助!
【问题讨论】:
标签: ajax axios asp.net-web-api2 httprequest asp.net-ajax