我是AngularJS和SOAP的新手,我正在做一个小型应用程序,它对公共API执行soap调用。问题是我收到此错误: 否"访问控制 - 允许 - 来源"在headeris礼物。 我经常搜索,我发现这个错误与CORS有关。我该如何解决? 我使用的是Chrome,我找到了一个允许它的插件,现在我收到错误500,所以我不知道我是否解决了它或者是否是其他的。 这是我的代码。
<!DOCTYPE html>
<html>
<head>
<title>Chiamata SOAP</title>
<script src="lib/angular.min.js"></script>
<script src="lib/soapclient.js"></script>
<script src="lib/angular.soap.js"></script>
<script>
var myApp = angular.module('myApp', ['angularSoap'])
.factory("testService", ['$soap',function($soap) {
var base_url = "http://www.webservicex.net/globalweather.asmx?wsdl";
//$soap.setCredentials("admin", "admin");
return{
GetCitiesByCountry: function(){
return $soap.post(base_url, "GetCitiesByCountry ", {CountryName:"Italy"});
}
}
}])
.controller('soapCtrl', function($scope, testService){
$scope.onClickCall = function(){
console.log("text before call")
testService.GetCitiesByCountry().then(function(response){
console.log("Testo dopo la chiamata")
console.log(response);
$scope.data = response.data;
});
}
});
</script>
</head>
<body ng-app="myApp">
<div ng-controller="soapCtrl">
<span>Effettua la chiamata SOAP </span><button ng-click="onClickCall()">Invia</button>
</div>
</body>
</html>
答案 0 :(得分:0)
我搜索了很多,我发现这个错误与CORS有关。
仅切向。该错误与Same Origin Policy有关,而CORS是您正在与之交谈的服务器可以放宽针对给定客户的相同原始政策的机制(例如,制作ajax请求的页面的来源。)
如果不允许您的页面来源向服务器发出请求,那么您的客户端代码就无法使服务器允许请求。
如果你控制服务器,请查看CORS规范以及CORS的最新方法,以了解如何实现允许页面来源查询的回复。
如果您不控制服务器: