如何在 IIS 6 中允许 HTTP OPTIONS 请求?

如何在 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 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 配置有问题,从而可能导致此错误?

答案1

在 IIS 管理器中,右键单击网站并选择属性。切换到主目录选项卡,然后单击配置按钮。在应用程序扩展列表中,找到您的 Web 服务使用的扩展(例如 WCF 的 .svc,ASP.NET Web 服务的 .asmx),选择它,然后单击编辑按钮。在限制为字段中,确保 OPTIONS 包含在逗号分隔的列表中。

对话框的屏幕截图

然后单击“确定”,直到所有对话框都关闭,并且应该就是这样。

相关内容