【问题标题】:angularjs : How to resolve cross domain issue in chrome and firefox which is working perfectly in IEangularjs:如何解决在 IE 中完美运行的 chrome 和 firefox 中的跨域问题
【发布时间】:2016-12-28 11:55:41
【问题描述】:

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

【问题讨论】:

  • 所以基本上你的问题是在 chrome 和 firefox 中,并且在 IE 中工作得很好?如果是这样,请详细说明问题。哪个部分不工作以及采取什么措施?
  • $http.get() 请求在 IE 中可以正常工作,但在 chrome 和 FF 中则不行。

标签: javascript angularjs google-chrome firefox


【解决方案1】:

我建议你尝试这两个选项:

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

  2. 将此扩展安装到 chrome: 允许控制允许来源 * 链接 => https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

【讨论】:

    【解决方案2】:

    默认情况下,浏览器不允许跨源请求。几乎所有浏览器都实现了此安全功能。但是,仍然有一些旧的浏览器不提供这种安全性。在这种情况下,IE。

    但是,您可以自行承担禁用网络安全的风险。但是,这不是永久的解决方案,因为我们不能要求每个用户都禁用它。

    解决方案是在服务器端设置 access-control-allow-origin 响应标头。但是,如果您的 ajax 端点是第三方,您可能会要求他们添加这些标头。如果不是你一定不要使用他们的服务,因为他们执行应用程序的意图不是在外面使用。

    【讨论】:

      【解决方案3】:

      我更喜欢使用本地网络服务器(gulp webserver 或 webpack),而不是通过禁用网络安全或其他方式来调整浏览器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-29
        • 1970-01-01
        • 2011-05-10
        • 2017-01-17
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多