这让我感到沮丧。我有一个宁静的服务,在链接上运行JSON数据:http://localhost:51133/API/SalesSystem/
所以它在我的电脑上本地运行。我可以使用基于WPF的界面从此服务获取数据没有问题。
我正在测试的另一项服务是:http://rest-service.guides.spring.io/greeting
但是从我自己的服务中,似乎出现了某种错误,我无法弄清楚出了什么问题。 spring服务使用响应函数给我一个响应,但我的服务使用成功函数函数给出响应。非常混乱。
回应似乎是:
{"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://localhost:51133/API/SalesSystem/","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"","xhrStatus":"error"}
我查了一下,似乎我可能需要启用Cors,但我不完全确定如何。我是从NuGet安装的,服务是用Visual Studio运行的,我添加了config.EnableCors();到我的WebApiConfig。
我的JS脚本:
angular.module('demo', [])
.controller('Hello', function ($scope, $http) {
$http.get('http://localhost:51133/API/SalesSystem/')
//http://rest-service.guides.spring.io/greeting
//http://localhost:51133/API/SalesSystem/
.then(function (response) {
$scope.hello = 'hello';
$scope.district = response.data;
console.debug(response.data);
console.log(response.data)
}, function success(response) {
$scope.hello = 'hello2';
$scope.district = response;
$scope.rep = response.data;
console.debug(response.data[0]);
$scope.district = response.data[0];
console.log(success.data)
}, function error(response) {
$scope.hello = 'hello3';
$scope.district = error.data;
console.log(error.data)
});
});
我的HTML:
<!doctype html>
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script src="Scripts/angular.min.js"></script>
<script src="Scripts/hello.js"></script>
</head>
<body>
<div ng-controller="Hello">
<li>Id: <button>{{hello}}</button></li>
<li>Area: {{district}}</li>
<ul ng-repeat="obj in hello">
<li>Area: {{obj.area}}</li>
</ul>
<p>The ID is {{rep.Id}}</p>
<p>The content is {{hello.Area}}</p>
</div>
</body>
</html>
我正在使用此服务使用基于WPF的前端,并不确定为什么它不能与AngularJS一起使用。
答案 0 :(得分:1)
CORS问题与角度无关。它更多地与浏览器有关。
在外行人看来,cors情况是浏览器不允许其他来源的响应而不是url被处理,除非响应有一定的标题集。当然,它比这更复杂。响应没有那些你得到CORS问题的标题
要快速修复,您可以在浏览器中禁用CORS。
例如: - 如果您使用的是chrome,则可以运行它--disable-web-security flag