我试图在angularjs中创建api的演示用法,并且遇到此问题。由于angularjs中的CORS无法显示JSON数据
我的代码看起来是这样的:
app.js and index.html
var app = angular.module("ytsApp",['ngRoute','ngResource']);
app.controller('MoviesCtrl',['$scope','movies',function($scope,movies){
movies.get(function(data){
alert(data);
});
}]);
app.factory('movies',['$resource',function($resource){
return $resource('https://yts.ag/api/v2/list_movies.json',{
'sort_by': 'year',
'limit': '15'
},{
'load': {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
});
}]);
<!DOCTYPE html>
<html ng-app="ytsApp">
<head>
<title>The Official Home of YIFY Movie Torrent Downloads - YIFY</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-route.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-resource.js"></script>
</head>
<body ng-controller="MoviesCtrl">
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>
这是越来越显示在控制台的结果,而我打开页面:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://yts.ag/api/v2/list_movies.json?limit=15&sort_by=year. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
我在这里和那里搜索并试图用几种方式编辑头文件,但无法破解它。我很感激,如果有人帮我解决这个问题。
如果你有机会到后台,你将不得不跨源策略添加到您的服务器,并允许访问您的应用程序。或者你可以使用JsonP。 Json与填充。在这里看到一个例子如何使用它时,使Ajax调用http://jsfiddle.net/saarmstrong/hYACX/8/light/ –
@ hasta-pasta我已尝试$ http.jsonp()方法也。有来自服务器的响应,但它在控制台中显示如下。 'SyntaxError:missing;之前的声明list_movies.json:1:9' – apparaokoppuka