在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 回應而不是您的應用程式。
要解決此問題:
或者,在程式碼中回應 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中文網其他相關文章!