请帮助我理解以下原因,
问题摘要:改变' codotronix.github.io' to' barick.in'解决了Cross 原产地问题
我有一个json文件托管在github上通过gh-pages分支在以下网址中, http://codotronix.github.io/bengali-recipes/data/recipe-list.json
还有一个自定义域,指向相同的资源, http://barick.in/bengali-recipes/data/recipe-list.json
如果单击上面的链接,您会发现它们指向同一个文件。
但是,当我试图从localhost获取json文件时,使用angularjs' s $ http.get,第一个url给出了一个交叉原点错误,但第二个工作正常。即
这不起作用
.controller('mainCtrl', ['$scope', '$http', function($scope, $http){
$http.get('http://codotronix.github.io/bengali-recipes/data/recipe-list.json')
.then(function(res){
console.log(res);
})
}])
它会出现此错误 - >
XMLHttpRequest无法加载 http://codotronix.github.io/bengali-recipes/data/recipe-list.json。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://127.0.0.1:55079'因此是不允许的 访问。
但是,This One Works
.controller('mainCtrl', ['$scope', '$http', function($scope, $http){
$http.get('http://barick.in/bengali-recipes/data/recipe-list.json')
.then(function(res){
console.log(res);
})
}])
这次我们的console.log
给出了预期的输出Object {data: Array[19], status: 200, config: Object, statusText: "OK"}
我没有在任何地方设置任何Access-Control-Header。所以,有人请向我解释为什么第一个不工作但第二个是...
(这是由于github实施的某种安全机制吗?只是猜测......)
提前致谢。