【问题标题】:WebAPI CORS doesn't work in IE10 and Firefox but not in Chrome and SafariWebAPI CORS 在 IE10 和 Firefox 中不起作用,但在 Chrome 和 Safari 中不起作用
【发布时间】:2013-05-18 10:13:33
【问题描述】:

我将我的 API 部署在 Windows Azure 的云服务中。我想允许从前端开发人员计算机调用我的 api,当我们使用 IE10 和 Firefox 21.0 而不是 Chrome 26.0 和 Safari 5.1.7 时,我们发现了一个错误。

我附上了IE10的图片错误

http://sdrv.ms/111EPu9

在 Safari 中工作正常

http://sdrv.ms/111EPu9

在用于开发目的的 web.config 中,我添加了以下内容:

<system.webServer>
<modules runAllManagedModulesForAllRequests="false">
      <remove name="WebDAVModule" />
  </modules>
  <handlers>
      <remove name="WebDAV"/>
      <remove name="OPTIONSVerbHandler"/>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
<httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS, PUT, DELETE"/>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="authenticate, accept, origin, authorization, content-type" />
    </customHeaders>
</httpProtocol>

有关此错误的任何想法/建议?

问候

【问题讨论】:

    标签: internet-explorer firefox asp.net-web-api cors


    【解决方案1】:

    根据规范,如果对 OPTIONS 的响应不是 HTTP/200,则应中止加载。不幸的是,WebKit(以及因此 Safari 和 Chrome)没有正确实现规范的那部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 2014-04-03
      • 2013-01-04
      相关资源
      最近更新 更多