Foursquare返回'没有访问控制允许来源'标题存在错误

时间:2014-12-21 11:13:54

标签: javascript angularjs xmlhttprequest foursquare

我正在对foursquare OAuth网址进行GET调用。浏览器控制台打印以下错误

XMLHttpRequest cannot load https://foursquare.com/oauth2/authenticate?client_id=DF4I1TGNVHAM40PDLOHZQZ…onse_type=code&redirect_uri=http://localhost:9000/auth/foursquare/callback. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access.

以下是拨打电话的摘录:

$http.get(url).success(function(data,status,headers,config){
});

但如果我将一个按钮链接到此网址,浏览器会将我带到认证页面。

它有什么不同?当URL链接到按钮时为什么它正在工作?当对该URL进行GET调用时,为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

除非服务器提供Access-Control-Allow-Origin(CORS)标头,否则Ajax不允许从一个域到另一个域的请求。允许在域之间进行链接。

Mozilla有一些很好的信息,包括允许的内容和不允许的内容。 https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Cross-origin_network_access

  • 通常允许跨源写入。例如链接,重定向和表单转换。某些很少使用的HTTP请求需要预检。
  • 通常允许跨源嵌入,例如图像,脚本。
  • 通常不允许跨源读取,例如ajax调用