访问控制允许AngularJS发生原始问题

时间:2015-04-16 21:53:48

标签: javascript angularjs

我在这里已经看到了几个相关的问题,但还没有解决我的问题。

我正在尝试在我正在建设的小型网络应用中访问雀斑(letsfreckle.com)api,但我遇到了问题。当我启动没有安全性的Chrome浏览器但它不能在github页面上运行时以及当我将应用程序打包为chrome扩展时,它可以工作。

这就是我的服务的样子

 jXtnsion.factory('freckle', ['$http', function($http){
  return $http.get('https://api.letsfreckle.com/v2/projects?freckle_token=kacgnpf0og0hfi1it32o9xtc2ls2328-gmeb1nwcp1ko8o0f0ygi4mlxxxxxxxx&f&format=jsonp')
  .success(function(freckleData){
    return freckleData;
  })
  .error(function(err){
    return err;
  });
}]);

我一直得到一个' XMLHttpRequest无法加载https://api.letsfreckle.com/v2/projects?freckle_token=kacgnpf0og0hfi1it32o9xtc2ls2328-gmeb1nwcp1ko8o0f0ygi4mlxxxxxxxx&f&format=jsonp。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://andela-asogbein.github.io'因此不允许访问。

为什么这不起作用?

2 个答案:

答案 0 :(得分:0)

我认为您的服务器需要正确响应浏览器代表您发出的OPTIONS请求,以确定CORS请求是否有效。它需要包含一个Access-Control-Allow-Headers标头,其中包含正确的信息。

您可以参考:

https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests

答案 1 :(得分:0)

我通过包含

解决了这个问题
"permissions": [
"https://*/"

],

在我的manifest.json文件中,因此它作为chrome扩展名没有问题。问题似乎来自雀斑api和本地主机的问题