我有一个controller.js
ListNewsCtrl.$inject = ['$http', '$scope', 'datacontext'];
function ListNewsCtrl( $http, $scope, datacontext) {
$scope.names = [];
$http.get("http://www.w3schools.com/website/Customers_JSON.php")
.success(function (response) {$scope.names = response;console.log($scope.names)});
};
我得到了我想要的数据。但是当我换到另一个站点时,我得到了以下信息:
XMLHttpRequest cannot load https://URL. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3424' is therefore not allowed access. The response had HTTP status code 404.
我尝试访问的信息不需要访问令牌?
答案 0 :(得分:1)
我的回答的解决方案是:
http://blog.novanet.no/angularjs-with-jsonp-and-how-i-get-to-work-on-time/#2
但是,我收到此错误:Uncaught SyntaxError:意外的令牌:我得到小的语法问题。但至少我可以看到我的数据
答案 1 :(得分:0)
CORS已在服务器端启用。您请求的域不允许CORS请求,这不是您可以在客户端编辑或配置的。
如果域名允许使用CORS,那么您在localhost
上托管本地Web服务器所使用的任何内容都不允许使用CORS。
答案 2 :(得分:0)
如果允许跨站点请求,请尝试
$http.jsonp("http://www.w3schools.com/website/Customers_JSON.php")
.success(function(data){
console.log(data);
});
答案 3 :(得分:0)
我不会说它是一个完美的方法,但更好的解决方法为cors。
雅虎!查询语言是一种富有表现力的SQL语言,允许您跨Web服务查询,过滤和连接数据。关于Yahoo YQL的好处是它启用了CORS:)
Client -> YQL -> API Server
在此处运行示例
$.getJSON("http://query.yahooapis.com/v1/public/yql",
{
q: "select * from json where url=\"https://erikberg.com/mlb/standings.json\"",
format: "json"
},
function (data) {
if (data.query.results) {
alert(data.query.results.json.standing);
} else {
alert('no such code: ' + code);
}
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这至少会以不同的方式解决你的角色问题。
快乐帮助!