我正在使用 $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": "*"};
但浏览器仍然阻塞。
有人可以指出我正确的方向吗?