1

我对 jsonp 或 cors 等感到非常沮丧。

jquery 上的 jsonp 结果认为,如果它只是返回的状态码而没有正文,则它是一个错误。它还认为返回的错误代码应该有状态为 200 的错误,因此您甚至无法确定哪个是哪个。

所以然后我尝试使用 cors,WebAPI 以某种方式在任何选项请求上拦截我的 DelegatingHandler,并且结果被触发,所有主要浏览器都不会超过选项请求。

所以然后我在我的 web.config 中放了很多东西来强制标题:

  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="https://beta.mobilemone.com" />
    <add name="Access-Control-Allow-Headers" value="content-type, accept, authorization, origin, referer, user-agent" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
    <add name="Access-Control-Allow-Credentials" value="true"/>
    <add name="Access-Control-Max-Age" value="1728000"/>
  </customHeaders>

这更进一步,但仍然在最终被调用的 jquery ajax 请求上获得“取消”结果。

如何让 cors 与 web api 一起正常工作?

谢谢!

4

1 回答 1

2

尝试删除<add name="Access-Control-Allow-Credentials" value="true"/>设置。如果您的客户端也没有设置,这将导致问题.withCredentials = true

还尝试将 Access-Control-Allow-Origin 标头更改为:

<add name="Access-Control-Allow-Origin" value="*" />

如果这两个提示不起作用,您能否将您的 JavaScript 代码与请求/响应标头的跟踪一起包含在内?

于 2012-12-13T02:54:25.720 回答