我使用$ httpBackend为Angular应用程序提供数据。当应用程序连接到启用了cors的实时服务器时,它运行正常。但是现在我们想把它放回到模拟数据上以进行额外的UI开发。但是当我运行它时,浏览器会阻止呼叫(Chrome和Firefox)。
这就是服务器的样子:
(function () {
'use strict';
angular.module('autoApp.mocks').run(config);
config.$inject = ['$httpBackend', '$httpProvider',
'MockConfigRepository',
'MockSearchRepository', 'MockSummaryRepository'];
function config($httpBackend, $httpBackend, MockConfigRepository,
MockSearchRepository, MockSummaryRepository){
$httpBackend.whenGET(/http:\/\/localhost.*/).passThrough();
$httpBackend.whenGET(/autoApp.*/).passThrough();
$httpBackend.whenGET(/http:\/\/mockServer\/api\/v1\.0\/contract\.aspx/)
.respond(function (){
var payload = MockConfigRepository.getPayload();
return [200, payload, {}];
});
// and more calls like that
}
}());
我的理解是必须在服务器上启用cors。我试过了
$httpProvider.defaults.useXDomain = true;
和
$httpProvider.defaults.headers.common = {"Access-Control-Allow-Origin": "*"};
但浏览器仍在阻止。
有人能指出我正确的方向吗?