只有在从ajax调用调用API时,才会在Internet Explorer中专门发布Cors。
1)Access-Control-Allow-Headers列表中不存在请求头内容类型2)XMLHttpRequest:网络错误0x80070005,拒绝访问。
我尝试了以下
xhrFields: {
withCredentials: true
}
也通过设置...
Ajax调用
var url = "https://dev-connectivity.dummylink";
var data = JSON.stringify({
"lang": "en",
"ClientId": "asdfasf3452345c42352345c",
"CountryCode": "34"
});
$.ajax({
url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
headers: {
'Access-Control-Allow-Origin': '*' },
data: data,
success: function (data) {
alert("tets");
},
error: function (error) {
alert("error");
}
});
//我的api Web配置代码
<httpProtocol>
<customHeaders>
<remove name="Access-Control-Allow-Origin" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
</httpProtocol>
//也在启动时启用Cors
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyMethod()
.AllowAnyHeader();
}));
app.UseCors(“CorsPolicy”);
如果您在web.config文件中提供了*,则IE不接受Content-Type标头,以解决此问题,您需要在web.config文件中的Access-Control-Allow-Headers列表中手动添加Content-Type标头。
<customHeaders>
<remove name="Access-Control-Allow-Origin" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Any-Other-Header" />
</customHeaders>