$ .getJSON停止在谷歌地图api distancematrix中工作

时间:2013-11-25 22:45:13

标签: javascript ajax json google-maps

这真的很奇怪,因为我有几个月的代码工作正常,但自上周以来我不能再使用它了。代码总是一样的:

   $.getJSON("http://maps.googleapis.com/maps/api/distancematrix/json?origins="+origin+"&destinations="+destinations+"&mode=walking&language=es-ES&sensor=false", function(datos) {
            alert("hello");
                    // code
            }
        });

我甚至看不到“你好”的警告。 但我可以看到json代码,这是一个例子:Example

那么,这可能是问题所在?

1 个答案:

答案 0 :(得分:3)

当它工作数月时,对你来说没什么问题,但你的错误就是依赖于你不能依赖的事实。

您是通过Javascript请求DistanceMatrix-Webservice,但是您在文档中忽略了此注释:

希望在JavaScript应用程序中使用此服务?查看Google Maps API v3的DistanceMatrixService课程。

Webservice不支持JSONP,他目前没有发送适当的Access-Control-Allow-Origin - 标题(这是您确实依赖的事实,这是访问此项所必需的通过AJAX提供服务,但文档没有说明会发送此标题),因此无法通过AJAX / Javascript 请求此服务。

在google-chrome控制台中,例如会告诉你这个:
XMLHttpRequest无法加载[URL]。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。来源' [网址]'因此不允许访问。