我試圖在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