C# 飞行前响应中的访问控制允许标头不允许ASP.Net WEB API请求标头字段授权
我编写WEBAPI代码是为了向授权用户获取一些数据,我遇到了多个问题,问题得到了解决。但现在,当我试图获取授权用户chrome的数据列表时,我遇到了一个问题,请告诉我这个错误 XMLHttpRequest无法加载。飞行前响应中的访问控制允许标头不允许请求标头字段授权。 这就是我从纯html页面中调用WebApi方法的人C# 飞行前响应中的访问控制允许标头不允许ASP.Net WEB API请求标头字段授权,c#,asp.net,asp.net-web-api,cors,C#,Asp.net,Asp.net Web Api,Cors,我编写WEBAPI代码是为了向授权用户获取一些数据,我遇到了多个问题,问题得到了解决。但现在,当我试图获取授权用户chrome的数据列表时,我遇到了一个问题,请告诉我这个错误 XMLHttpRequest无法加载。飞行前响应中的访问控制允许标头不允许请求标头字段授权。 这就是我从纯html页面中调用WebApi方法的人 $.ajax({ url: domain + '/api/Data', type: 'GET',
$.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);
}
});
$.ajax({
url:domain+'/api/Data',
键入:“GET”,
发送前:函数(xhr){
调试器;
xhr.setRequestHeader(“授权”、“承载者”+会话存储.getItem(“令牌”);
},
成功:功能(响应){
$。每个(响应、函数(){
$('#myTable')。追加(
''
+这是用户名
+ ''
+这是我的密码+
''
);
});
//回应
},
错误:函数(err){
警报(错误响应文本);
}
});
请在您的WebAPI中告诉我,您需要安装软件包Microsoft.Owin.Cors。 打开Nuget软件包控制台,键入以下内容
Install-Package Microsoft.Owin.Cors
安装添加参考后,您需要转到Startup.cs add此行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);
}
在WebAPI中,您需要安装软件包Microsoft.Owin.Cors。
打开Nuget软件包控制台,键入以下内容
Install-Package Microsoft.Owin.Cors
安装添加参考后,您需要转到Startup.cs add此行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正确使用和控制外部访问。将以下内容添加到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正确使用和控制外部访问您需要在web api中启用CORS。请阅读此处,您需要在web api中启用CORS。请看这里