在 IIS 上启用 CORS 预检 ASP.NET
Enable CORS preflight ASP.NET on IIS
我只有一个 ASP.NET 应用程序的二进制文件,我正试图在本地启动它。我在尝试提出它时遇到了一些 CORS 问题。
Access to XMLHttpRequest at 'http://xx.xx.xx.xx:8080/webapi/' from origin
'http://xx.xx.xx.xx:8089' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我尝试了几种方法,包括从此处在 IIS 上安装 CORS 模块 https://www.iis.net/downloads/microsoft/iis-cors-module
我也尝试更改我的 Web.Config 以添加以下内容。我想要做的只是让它开始工作,所以我想允许所有请求通过。
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
<add origin="http://*" allowed="true" />
</cors>
但我仍然遇到同样的错误。奇怪的是,webapi 和 ASP.NET 客户端都在同一台机器上的不同端口 8080 和 8089.
首先你要确定你已经成功安装了cors模块,然后你需要在应用的web.config中添加如下配置:
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
</cors>
</system.webServer>
此配置节点在配置节点下
如果还是没有解决,也可以在Global文件中加入如下代码解决跨域问题:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "*");
HttpContext.Current.Response.End();
}
}
我只有一个 ASP.NET 应用程序的二进制文件,我正试图在本地启动它。我在尝试提出它时遇到了一些 CORS 问题。
Access to XMLHttpRequest at 'http://xx.xx.xx.xx:8080/webapi/' from origin
'http://xx.xx.xx.xx:8089' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我尝试了几种方法,包括从此处在 IIS 上安装 CORS 模块 https://www.iis.net/downloads/microsoft/iis-cors-module
我也尝试更改我的 Web.Config 以添加以下内容。我想要做的只是让它开始工作,所以我想允许所有请求通过。
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
<add origin="http://*" allowed="true" />
</cors>
但我仍然遇到同样的错误。奇怪的是,webapi 和 ASP.NET 客户端都在同一台机器上的不同端口 8080 和 8089.
首先你要确定你已经成功安装了cors模块,然后你需要在应用的web.config中添加如下配置:
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
</cors>
</system.webServer>
此配置节点在配置节点下
如果还是没有解决,也可以在Global文件中加入如下代码解决跨域问题:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "*");
HttpContext.Current.Response.End();
}
}