【发布时间】:2014-04-18 20:10:47
【问题描述】:
我正在通过 jQuery 的 $.ajax 函数在我一直使用的第三方 API 上调用 POST。但是,当我拨打电话时,出现以下错误:XMLHttpRequest cannot load http://the-url.com. The request was redirected to 'http://the-url.com/anotherlocation', which is disallowed for cross-origin requests that require preflight.
我从this post 看到这可能是一个 Webkit 错误,所以我在 Firefox 中尝试了它(我正在使用 Chrome 进行开发),我得到了相同的结果。我在 Chrome 和 Firefox 上尝试了这个,我得到了同样的结果。
根据this post,我还尝试通过将$.ajax 函数的crossDomain 属性设置为true 并将dataType 设置为jsonp 来使用jsonp。但是,这导致了 500 内部服务器错误。
当我使用 --disable-web-security 标志启动 Chrome 时,我没有任何问题。但是,如果我正常启动浏览器,则会收到错误消息。
所以,我想这可能是一个由两部分组成的问题。我该怎么做才能发出这个跨域请求?如果 JSONP 是答案,那么我该如何确定第三方 API 是否设置正确以支持此功能?
编辑:这是我在禁用浏览器安全性的情况下拨打电话时的屏幕截图:https://drive.google.com/file/d/0Bzo7loNBQcmjUjk5YWNWLXM2SVE/edit?usp=sharing
这是我在启用浏览器安全性的情况下拨打电话时的屏幕截图(与正常情况一样):https://drive.google.com/file/d/0Bzo7loNBQcmjam5NQ3BKWUluRE0/edit?usp=sharing
【问题讨论】:
标签: jquery ajax cross-domain jsonp cors