来自 http://www.google.com/ 的响应的“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误
Posted
技术标签:
【中文标题】来自 http://www.google.com/ 的响应的“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误【英文标题】:"No 'Access-Control-Allow-Origin' header is present on the requested resource" error for response from http://www.google.com/ 【发布时间】:2014-07-28 15:32:56 【问题描述】://Create an Angular Module.
var newsModule = angular.module('NewsModule', []);
//Create an Angular Controller.
newsModule.controller('newsCtrl', ['$scope', '$http', function ($scope, $http)
//function retrives POST,UPDATE,DELETE,GET data
$http.defaults.headers.put =
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With'
;
$http.defaults.useXDomain = true;
$scope.throughdata = function ()
delete $http.defaults.headers.common['X-Requested-With'];
$http.get('http://www.google.com').then(function(data,error)
alert(data);
alert(error);
$scope.days=data.data;
);
]);
但我遇到以下错误
XMLHttpRequest 无法加载 http://www.google.com/。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'null'。
【问题讨论】:
只是想知道为什么你不使用ngResource
来处理这些类型的任务。它位于$http
之上,以便于使用。
【参考方案1】:
Access-Control-Allow-Origin
在来自服务器的响应上设置,不是在客户端请求上,以允许来自不同来源的客户端访问响应。
在您的情况下,http://www.google.com/ 不允许您的来源访问响应。因此,您无法阅读它。
有关 CORS 的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
【讨论】:
任何拥有 Rails 后端的人,请参阅 ***.com/questions/17858178/… 和 github.com/cyu/rack-cors以上是关于来自 http://www.google.com/ 的响应的“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误的主要内容,如果未能解决你的问题,请参考以下文章