Chrome / FireFox将AngularJS Get调用与自定义标头转换为选项调用

时间:2014-06-24 20:10:43

标签: angularjs google-chrome cors

以下是使用Angular Service的非常简单的CORS Get调用。

var url = 'http://customerRestService.com/api/customer/';
app.service("CustomerService", ['$http', '$q', '$rootScope', function ($http, $q,   
$rootScope) {
getCustomers: function (p, h) {           
return $http.get(url + '?pageNumber=' + p + '&howMany=' + h, { headers: { blahblan:      
'bhagirath' } });
}
};
}]);

我的休息服务在web.config中有CORS配置,这是标准的,如下所示

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type,  
Accept, X-Custom-Header, blahblan" />
<add name="Access-Control-Allow-Methods" value="POST, GET,  PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>

使用IE10完全正常。但不适用于Chrome和Firefox。网络选项卡显示浏览器(Chrome / FF)发出OPTIONS请求,但IE直接发出GET请求。

这个Angular或浏览器是否出错了。我已经浏览了Stackoverflow上的几乎所有帖子以获得解决方案,但没有成功。

你能帮我解决一下吗?这将是一个巨大的帮助。

0 个答案:

没有答案