我正在对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调用时,为什么它不起作用?
答案 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