这是我的javascript代码
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
$http.get("www.test.com/my_project/learningresources/ajaxvalue")
.success(function (response) {$scope.names = response;});
});`我正在调用一个在spring中编写的服务,它位于不同的服务器上。此服务返回一个json数组。在html中,我使用以下代码来显示此服务返回的结果:
<tr ng-repeat="x in names">
<td>{{ x.Name }}</td>
<td>{{ x.Country }}</td>
</tr>我得到了下面的javascript错误:“源码无法加载www.test.com/my_project/learningresources/ajaxvalue.没有‘access-XMLHttpRequest-Allow- Origin’头存在于所请求的资源上。因此不允许访问源码'https://current_site.com‘。”
这是由于某些数据库权限所致吗?我不能得到这个。我是AngularJS和Spring的新手。
发布于 2015-03-27 16:37:52
这是因为跨域请求,默认情况下不允许对不同域的请求。
两种主要的解决方案是:
Access-Control-Allow-Origin,并将您的域名添加到该头部。为此,您需要访问服务器代码。类似response.addHeader('Access-Control-Allow-Origin', 'domain.foo.bar/*');的东西-->这取决于course.response.addHeader('Access-Control-Allow-Origin', 'domain.foo.bar/*');。阅读有关CORS here的更多信息(底部的JSONP链接)
发布于 2015-03-27 16:40:23
您正在尝试进行跨域请求,这是浏览器不允许的。解决方案可以是:
1.调用充当外部域桥梁的服务器服务,并将数据返回给angular函数。
2.使用jsonp代理,调用它并在参数中声明回调函数(有一个带有jquery的应答here )
发布于 2015-03-27 16:46:16
尝尝这个
关闭chrome浏览器,按win+r。复制并粘贴以下内容
chrome.exe --用户数据目录=“C:/Chrome dev session”--禁用web安全
然后尝试查看结果,然后告诉您在加载应用程序后是否出现相同的错误。祝好运。
https://stackoverflow.com/questions/29296309
复制相似问题