正如Daniel A.
White在他的评论中所说,OPTIONS请求很可能是由客户端创建的,作为跨域Javascript请求的一部分。这是由跨源资源共享(CORS)兼容的浏览器自动完成的。该请求是初步请求或
飞行前 请求,在实际AJAX请求之前进行,以确定CORS支持哪些请求动词和标头。服务器可以选择不支持,不支持全部或某些HTTP动词。
为了完成图片,AJAX请求具有一个附加的“
Origin”标头,该标头标识了从何处提供托管Javascript的原始页面。服务器可以选择支持来自任何来源的请求,或者仅支持一组已知的可信来源的请求。允许任何来源都是安全风险,因为这样做会增加跨站请求伪造(CSRF)的风险。
因此,您需要启用CORS。
这是解释如何在ASP.Net Web API中执行此操作的链接
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-
in-web-api#enable-cors
此处描述的实现可让您指定其他内容
- 针对每个动作,每个控制器或全局的CORS支持
- 支持的来源
- 启用CORS aa控制器或全局级别时,支持的HTTP动词
- 服务器是否支持通过跨域请求发送凭据
通常,这可以正常工作,但是您需要确保您已意识到安全风险,尤其是在允许来自任何域的跨源请求的情况下。允许这样做之前,请仔细考虑。
关于哪种浏览器支持CORS,维基百科表示以下引擎支持它:
- 壁虎1.9.1(FireFox 3.5)
- WebKit(Safari 4,Chrome 3)
- MSHTML / Trident 6(IE10),在IE8和9中部分支持
- 普雷斯托(歌剧12)
http://en.wikipedia.org/wiki/Cross-
origin_resource_sharing#Browser_support



