我无法使用angularJs($http)访问服务器

I can not access in to a server with angularJs ($ http)

本文关键字:http 访问 服务器 angularJs      更新时间:2023-09-26

通过AngularJs试图访问服务器,让我以这种方式返回JSON

modulo.controller('listaController', function($scope, $http) {
    $http.get('http://api.rottentomatoes.com/api/public/v1.0/movies.json?[apyKeyBlaBla]&q=Toy+Story+3&page_limit=1').success(function(data) {
        $scope.items = data;
    });
});

但当你启动应用程序时,我会收到这个错误:

XMLHttpRequest无法加载[Name Sting]请求的上不存在"Access Control Allow Origin"标头资源原点'http://localhost:8383因此不允许通道

解决方案在哪里?通知我使用netbeans,并将我的apyKey放在上面的字符串中,然后字符串是正确的,因为我测试了它!

您应该这样做:

$http.jsonp('http://api.rottentomatoes.com/api/public/v1.0/movies.json?[apyKeyBlaBla]&q=Toy+Story+3&page_limit=1&callback=JSON_CALLBACK').success(function(data) {
    $scope.items = data;
});

重要的是在请求url

中有回调=JSON_callback

之所以出现此错误,是因为浏览器不允许从一个主机(localhost)向另一台主机(rotentomatoes.com)发出AJAX请求,除非后者允许。这被称为CORS。

实现这一点的唯一方法是在AJAX代码和rotentomatoes.com之间使用网关。例如,向您编写的后端应用程序发出AJAX请求,并让后者向rotentomato es.com发出实际请求,将结果返回给您的cleint应用程序。

"您正在向页面所在的不同域执行XMLHttpRequest。因此浏览器会阻止它,因为出于安全原因,它通常允许来自同一来源的请求。当您想要执行跨域请求时,您需要做一些不同的事。"by@MD。Sahib Bin Mahboob

我建议你阅读以下问题/答案:

"否';访问控制允许来源';报头存在于所请求的资源上";