Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 飞行前响应中的访问控制允许标头不允许ASP.Net WEB API请求标头字段授权_C#_Asp.net_Asp.net Web Api_Cors - Fatal编程技术网

C# 飞行前响应中的访问控制允许标头不允许ASP.Net WEB API请求标头字段授权

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',

我编写WEBAPI代码是为了向授权用户获取一些数据,我遇到了多个问题,问题得到了解决。但现在,当我试图获取授权用户chrome的数据列表时,我遇到了一个问题,请告诉我这个错误

XMLHttpRequest无法加载。飞行前响应中的访问控制允许标头不允许请求标头字段授权。

这就是我从纯html页面中调用WebApi方法的人

$.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。请看这里