首頁 > web前端 > js教程 > 主體

如何在 IIS7 上啟用跨域資源共享 (CORS)?

Mary-Kate Olsen
發布: 2024-10-26 04:39:02
原創
971 人瀏覽過

How to Enable Cross-Origin Resource Sharing (CORS) on IIS7?

在IIS7 上啟用跨來源資源共享(CORS)

跨來源資源共享(CORS) 允許Web 應用程式在不同來源上運行相互發出HTTP 請求。但是,預設情況下,不允許向其他網域發送 XHR 請求。

在目標域上啟用CORS

要在目標域上啟用CORS,請新增下列自訂web.config 檔案的標頭:

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" /
        <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" /
        <add name="Access-Control-Allow-Headers" value="Content-Type" /
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration></code>
登入後複製

IIS7 設定

在目標網域上啟用CORS 後,您仍可能會遇到405 Method Not allowed 回應。這可能是由於 IIS7 處理 HTTP OPTIONS 回應而不是您的應用程式。

要解決此問題:

  1. 導覽至 IIS7 中站點的處理程序對應。
  2. 找到「OPTIONSVerbHandler」映射。
  3. 將“ProtocolSupportModule”更改為“IsapiHandler”。
  4. 將執行檔設定為「%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll」。

或者,在程式碼中回應 HTTP OPTIONS

您也可以在 BeginRequest 方法中回應 HTTP OPTIONS 動詞:

<code class="csharp">    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            // Pre-flight OPTIONS call
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }</code>
登入後複製

以上是如何在 IIS7 上啟用跨域資源共享 (CORS)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!