我面临chrome和firefox中的跨域问题,在IE中正常工作。我也尝试过$http.jsonp()
,但仍面临同一问题。
JS
app.controller('myCtrl', function($scope,$http,$compile){
var serverName = "home.mcafee.com/";
var apiRequest = "http://infraapi.int.mcafee.com/api/DBData/";
$scope.ajaxCall = function(){
$http.get(apiRequest+serverName)
.success(function(data){
$scope.Detail = data;
}).error(function (data, status, headers, config){
console.log(data);
});
}
});
我建议您尝试以下两个选项:
-
在您的终端中插入此命令: - 可见的 - web-security
-
将此扩展安装到Chrome:允许控制 - 允许原素 *link => https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacpececfghkpbjhkpbjhdddihlkkiljbi?hl = en
默认情况下浏览器不允许交叉原点请求。此安全功能几乎在所有浏览器中都实现。但是,仍然有一些旧浏览器无法提供此安全性。在这种情况下,即。
但是,您可以自行冒险禁用Web安全性。但是,这不是永久解决方案,因为我们不能要求每个用户禁用它。
解决方案是设置访问控制 - 允许响应标头服务器端。但是,如果您的Ajax终点是第三方,则可以要求他们添加这些标题。如果不是,您不得使用他们的服务,因为他们的意图在外部不使用。
我更喜欢使用本地网络服务器(Gulp Weberver或webpack),而不是通过禁用Web-Security或其他内容来调整浏览器