![](/img/trans.png)
[英].NET Core WebAPI / Angular project - Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response
[英]ASP.Net WEB API Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response
我编写了我的 WEBAPI 代码来向经过身份验证的用户获取一些数据,我遇到了多种问题并且解决了。 但是现在当我尝试获取经过身份验证的用户的数据列表时遇到问题 chrome 给我这个错误
XMLHttpRequest 无法加载http://192.168.10.95/KS.API.Client/api/Data 。 预检响应中的 Access-Control-Allow-Headers 不允许请求头字段授权。
a 这就是我从纯 html 页面调用 WebApi methor 的人
$.ajax({
url: domain + '/api/Data',
type: 'GET',
beforeSend: function (xhr) {
debugger;
xhr.setRequestHeader("Authorization", " Bearer " + sessionStorage.getItem("Token"));
},
success: function (response) {
$.each(response, function () {
$('#myTable').append(
'<tr><td>'
+ this.username
+ '</td><td>'
+ this.password +
'</td></tr>'
);
});
// response
},
error: function (err) {
alert(err.responseText);
}
});
请放过我
在您的 WebAPI 中,您需要安装包 Microsoft.Owin.Cors。 打开 Nuget 包控制台,输入这个
Install-Package Microsoft.Owin.Cors
安装添加引用后,需要到Startup.cs添加这一行app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
进入您的配置功能它看起来像这样
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
将以下内容添加到 Web API 的 web.config 文件中以启用访问:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
</customHeaders>
</httpProtocol>
这应该放在你的 web.config 的 system.webServer 节点中。
请阅读官方文档以正确使用和控制从外部使用 CORS 的访问
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.