Angularjs:如何解决IE中完美工作的Chrome和Firefox中的跨域问题



我面临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);
    });
}
});

我建议您尝试以下两个选项:

  1. 在您的终端中插入此命令: - 可见的 - web-security

  2. 将此扩展安装到Chrome:允许控制 - 允许原素 *link => https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacpececfghkpbjhkpbjhdddihlkkiljbi?hl = en

默认情况下浏览器不允许交叉原点请求。此安全功能几乎在所有浏览器中都实现。但是,仍然有一些旧浏览器无法提供此安全性。在这种情况下,即。

但是,您可以自行冒险禁用Web安全性。但是,这不是永久解决方案,因为我们不能要求每个用户禁用它。

解决方案是设置访问控制 - 允许响应标头服务器端。但是,如果您的Ajax终点是第三方,则可以要求他们添加这些标题。如果不是,您不得使用他们的服务,因为他们的意图在外部不使用。

我更喜欢使用本地网络服务器(Gulp Weberver或webpack),而不是通过禁用Web-Security或其他内容来调整浏览器

最新更新