我尝试使用Angular创建SPA。我必须使用不同服务器的服务。这是一个基于Java的服务。我在这里得到" No' Access-Control-Allow-Origin'标头出现在请求的资源上"
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;
});
}
])
请帮忙。
答案 0 :(得分:1)
您的浏览器正在使用CORS协议来验证对服务的访问,以防止跨站点脚本攻击。您需要在服务器上启用CORS支持(添加Access-Control-Allow-Origin标头,允许承载Angular站点的站点)。或者,您需要使用其中一个CORS之前的黑客来获取JSON跨站点,并且您的服务器需要为其提供支持。
答案 1 :(得分:0)
第1步:
验证您的角应用实际上是否正在点击有效的网址。 通过Fiddler或Postman
执行此操作第2步:
验证您的客户端AngularJS应用程序和服务器是否在相同的URL和端口上运行。
如果您打算让它们在不同的端口/ URL上运行,那么您需要在其他注释中提到的Java应用程序setup CORS。
第3步(如果使用第2步):
指定将JSON_CALLBACK参数附加到您的网址。