【发布时间】:2012-09-20 04:28:21
【问题描述】:
当发出一个跨域的 Ajax POST 请求时,AngularJS 首先发送一个 HTTP OPTIONS 请求。 jQuery 也是如此,我知道这是规范的一部分。不同之处在于,如果 OPTIONS 请求出现错误(例如,服务器不支持它,这通常是这种情况),jQuery 将继续发出 POST 请求,而 AngularJS 只是默默地失败并放弃。有没有办法强制它发出 POST 请求?
【问题讨论】:
-
我认为 OPTIONS 请求是在浏览器级别处理的。查看 jQuery 中 Angular 和 XHR 的 $http 的来源,我没有看到任何对 OPTIONS 请求的引用,但是有一些特定的代码涉及 jQuery 中跨域请求的标头,这可能是造成差异的原因。参考:github.com/angular/angular.js/blob/master/src/ng/http.js 和 github.com/jquery/jquery/blob/master/src/ajax/xhr.js。我对这个问题的解决方案是创建一个反向代理来注入正确的 Allow-XXXX 标头。
标签: javascript jquery ajax cross-domain angularjs