我使用Apiary.io模拟我的API。但不知何故,我不能读取任何头从响应对象使用angularJS。我确信我至少有Content-Type: application/json正确设置检查在firebug。Angular中的代码也应该正确读取头文件,因为它可以在发送请求到apiary.io以外的地方时打印它们…
$http.get('http://ies.apiary.io/some').then(function(response) {
console.log("ok",response.headers('Content-Type'));
},function(response){console.log("err",response);});
http://plnkr.co/edit/zMO0pXGsIdJkV0fZdBdw 这一切都归结为firefox的一个bug: https://bugzilla.mozilla.org/show_bug.cgi?id=608735
对于CORS请求,虽然req.getRequestHeader('Content-Type')返回正确,但是firefox对req.getAllRequestHeaders()没有返回任何东西。
要么FF错误必须修复,要么Angular必须绕过它(就像jQuery一样),要么你必须深入研究,直接使用XmlHttpRequest实例。
这可能也是相关的,但可能不是核心问题:
然而,几天前,Apiary。io没有在CORS
标头中设置Max-Age
。因此,如果你有一个最小的蓝图,你可能有CORS
预飞行响应缓存,因此后续的请求可能不被允许,即使你添加额外的资源到你的蓝图。
Max-Age
现在设置为10秒,所以它应该正常工作。但是,根据您的浏览器,飞行前缓存可能仍然会影响您。尝试清除它或在另一个浏览器中测试这个应用程序。