Windows-Server-2003

如何在 IIS 6 中允許 HTTP OPTIONS 請求?

  • September 6, 2013

我在允許來自我正在處理的網站的 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 OnlyScripts 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 包含在逗號分隔的列表中。

對話框的螢幕截圖

然後點擊確定,直到對話框全部關閉,就可以了。

引用自:https://serverfault.com/questions/497399