Windows-Server-2003
如何在 IIS 6 中允許 HTTP OPTIONS 請求?
我在允許來自我正在處理的網站的 CORS OPTIONS 請求時遇到了一些問題。在做了一些研究之後,我的印像是,為了使 CORS OPTIONS 請求正常工作,需要準備以下內容:
在 HTTP 標頭選項卡下有以下內容:
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST,DELETE,OPTIONS Access-Control-Allow-Headers: x-requested-with, cache-control, content-type, origin
在主目錄選項卡下,將執行權限設置為
Scripts Only
或Scripts and Executables
。我已經完成了所有這些,但是當我嘗試送出以下請求時,我收到 403.1 錯誤:
Request URL:https://mystaging.verbalink.com/Secure/File/Handler.ashx?Id=9070c032-cced-4155-af29-6f6df476598d,c606c3c8-d06f-43ce-ab25-0614b0142659 Request Method:OPTIONS Status Code:403 Forbidden Request Headers OPTIONS /Secure/File/Handler.ashx?Id=9070c032-cced-4155-af29-6f6df476598d,c606c3c8-d06f-43ce-ab25-0614b0142659 HTTP/1.1 Host: mystaging.verbalink.com Connection: keep-alive Access-Control-Request-Method: POST Origin: http://mystaging.verbalink.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 Access-Control-Request-Headers: cache-control, origin, x-requested-with, content-type Accept: */* Referer: http://mystaging.verbalink.com/Secure/File/MultiUpload2.aspx Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Query String Parametersview sourceview URL encoded Id:9070c032-cced-4155-af29-6f6df476598d,c606c3c8-d06f-43ce-ab25-0614b0142659 Response Headers HTTP/1.1 403 Forbidden Allow: OPTIONS, TRACE, GET, HEAD, POST Content-Length: 1758 Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Access-Control-Allow-Methods: POST,DELETE,OPTIONS Access-Control-Allow-Headers: x-requested-with, cache-control, content-type, origin Access-Control-Allow-Origin: * Public: OPTIONS, TRACE, GET, HEAD, POST Date: Mon, 08 Apr 2013 20:19:10 GMT
是否有人認為我配置 IIS 的方式有任何問題可能導致此錯誤?
在 IIS 管理器中,右鍵點擊網站並選擇屬性。切換到主目錄選項卡,然後點擊配置按鈕。在應用程序擴展列表中,找到您的 Web 服務使用的擴展(例如 .svc 用於 WCF,.asmx 用於 ASP.NET Web 服務),選擇它,然後點擊“編輯”按鈕。在“限制為”欄位中,確保 OPTIONS 包含在逗號分隔的列表中。
然後點擊確定,直到對話框全部關閉,就可以了。