asp.net - IIS 7.5 的 CORS 设置

标签 asp.net iis cors web-config iis-7.5

如何转换以下代码以在 IIS 7.5 中的 web.config 中使用以及我应该将每段代码放置在 web.config 文件中的什么位置?

# Always set these headers.
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
 
# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

最佳答案

如果您要求此解决 CORS 问题,您可以按照下面的解决方案进行操作。

注意:在添加所有这些之前,您应该考虑安全问题。

  1. 将其添加到您的 web.config 文件中:

    <system.webServer>
      <httpProtocol>
        <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
          <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS" />
          <add name="Access-Control-Allow-Credentials" value="true"/>
          <add name="Access-Control-Allow-Headers" value="X-Requested-With, origin, content-type, accept" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
    
  2. 如果您有内容类型 您的 ajax 调用中的参数或者您正在执行 PUT 请求。那些 被视为 PreFlight 请求。Preflight 请求正在执行 发送主请求(PUT、DELETE 等)之前的 OPTION 请求。您可以 将以下方法添加到您的 global.asax 文件中以成功传递 OPTION 过程:

    protected void Application_BeginRequest()
    {
        if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
        {
            Response.Flush();
        }
    }
    

To have more information about Preflight requests you can check here

For solution number 2 you can have detailed information from here

关于asp.net - IIS 7.5 的 CORS 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488535/

相关文章:

javascript - 从外部 JS 文件引用 ASPX 控件

c# - FtpWeb请求 : The remote server returned an error: (530) Not logged in

iis - Azure 上的 Web API 错误,直到回收应用程序池

javascript - 捕获JavaScript中的Access-Control-Allow-Origin错误

c# - 存储临时数据的最有效方法是什么

c# - XML 序列化和空值 - C#

c# - 在 C# 中查找两个大小相等的数组的所有组合集

c# - 在 IIS 7 中启动应用程序时出现 "CS0016: Could not write to output file"错误

reactjs - 将图像上传到 AWS S3 存储桶 ReactJS 时 POST 403 禁止 CORS 响应

javascript - CORS 响应 header 如何阻止浏览器 JavaScript 访问响应对象?