使用 Angularjs 获取"请求的资源上不存在'访问控制-允许源'标头"



我正在尝试用Angular创建一个SPA。我必须使用来自不同服务器的服务。它是一个基于java的服务。这里我得到"请求的资源上不存在‘访问控制允许来源’标题"

angular.module('tableApp', [])
.config(function ($httpProvider) {
    //Enable cross domain calls
    $httpProvider.defaults.useXDomain = true;
    $httpProvider.defaults.withCredentials = true;
    delete $httpProvider.defaults.headers.common["X-Requested-With"];
    $httpProvider.defaults.headers.common["Accept"] = "application/json";
    $httpProvider.defaults.headers.common["Content-Type"] = "application/json";
    //Remove the header used to identify ajax call  that would prevent CORS from working
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
})
.controller('tableCtrl', ['$scope', '$http', '$timeout', function ($scope, $http) {
     var bassURL = 'http://[server ip]:8080/ABC/resource/XYZ'
    $http.get(bassURL + '/getTypes').success(function (Type) {
        $scope.Type = Type;
    });
    }
])

请帮忙。

您的浏览器正在使用CORS协议来验证对服务的访问,以防止跨站点脚本攻击。您需要在服务器上启用CORS支持(添加Access Control Allow Origin标头,允许托管Angular站点的站点)。或者,您需要使用CORS之前的一个技巧来跨站点获取JSON,并且您的服务器需要为其提供支持。

步骤1:

验证你的angular应用程序是否真的命中了有效的URL。通过Fiddler或Postman 执行此操作

步骤2:

验证您的客户端AngularJS应用程序和服务器是否在同一URL和端口上运行。

如果您打算让它们在不同的端口/URL上运行,则需要在java应用程序上设置CORS,如其他注释中所述。

步骤3(如果使用步骤2):

指定一个附加JSON_CALLBACK参数到您的URL。

SO示例
示例

相关内容

  • 没有找到相关文章

最新更新