$ http提供程序向Github API发出外部请求,但不向Google map API发出请求

时间:2014-12-05 16:51:46

标签: javascript angularjs google-maps httprequest

我正在尝试使用AngularJS的$ http提供程序来创建对Google Map API的请求。我一直收到错误消息:

use 'strict';

if (!headersObj) headersObj =  parseHeaders(headers);

  if (name) {
    return headersObj[lowercase(name)] || null;
  }

  return headersObj;
}

我在这里创建了一个例子: http://jsfiddle.net/omniphx/dkagwpu0/16/

对Github API的请求将成功,但对Google地图API的请求将失败。无法弄清楚我可能会遗漏什么。两者似乎都输出JSON格式,并且这两个URL在我的浏览器中都能正常工作。

任何人都知道导致Google Maps API失败的原因是什么?

1 个答案:

答案 0 :(得分:3)

请求本身并不完全失败。 您遇到了经典的CORS问题。

在控制台中找到XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

Github标题中有Access-Control-Allow-Origin:*标题,而googleapis没有任何此类标题。您可以阅读更多相关信息here