使用自定义域时,github(gh-pages)上托管的文件/数据上的跨源错误消失

时间:2016-04-30 15:32:43

标签: angularjs git github cross-domain github-pages

请帮助我理解以下原因,

  

问题摘要:改变' 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实施的某种安全机制吗?只是猜测......)

提前致谢。

0 个答案:

没有答案