$.getJSON 停止在谷歌地图 api distancematrix 中工作
Posted
技术标签:
【中文标题】$.getJSON 停止在谷歌地图 api distancematrix 中工作【英文标题】:$.getJSON stop working in google maps api distancematrix 【发布时间】:2013-12-10 21:11:02 【问题描述】:这真的很奇怪,因为我有几个月的这段代码可以正常工作,但从上周开始我就不能再使用它了。代码总是一样的:
$.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
那么,这可能是什么问题?
【问题讨论】:
也许您应该检查返回的错误。 ***.com/questions/1740218/… 谢谢,但我无法捕捉到错误描述...如果我使用“.fail(function(jqXHR, textStatus, errorThrown) alert('getJSON request failed!' + textStatus); )" "textStatus" 只显示单词 "error"。如果我尝试用 "$.ajax( url: 'url', dataType: 'json', error: function( data ) alert( "ERROR: " + data ); );" 来捕捉它“数据”只是显示[Object object],这在这些情况下很常见。 “errorThrown”警报“NetworkError:发生网络错误。” 【参考方案1】:它可以工作几个月对你来说很好,但你的错误是依赖一个你不能依赖的事实。
您正在通过 javascript 请求 DistanceMatrix-Webservice,但您在文档中忽略了此注释:
希望在 JavaScript 应用程序中使用此服务?查看 Google Maps API v3 的 DistanceMatrixService
类。
Webservice 不支持 JSONP,他目前没有发送适当的Access-Control-Allow-Origin
-header(这是您确实依赖的事实,并且是通过 AJAX 访问此服务所必需的,但文档没有表示将发送此标头),因此无法通过 AJAX/Javascript 可靠地请求此服务。
在 google-chrome 中,控制台例如会告诉你:XMLHttpRequest 无法加载 [URL]。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“[URL]”。
【讨论】:
谢谢!但是,你推荐我用什么?距离矩阵 javascript 函数对我不起作用(它无法识别某些国家和地方来计算距离,我需要修复它)。可能我应该在 php 中使用该服务,但它可能有同样的问题。我不知道使用该服务的其他方式 我应该推荐什么?当服务没有给你想要的结果时,你必须寻找其他服务提供商 webservice 和Google Maps Javascript API v3 Directions Matrix service 应该返回相同的结果(它们使用相同的数据),如果 javascript 服务由于数据问题而无法工作,那么 Web 服务也可能无法工作.以上是关于$.getJSON 停止在谷歌地图 api distancematrix 中工作的主要内容,如果未能解决你的问题,请参考以下文章
在谷歌地图javascript api中 - 如何移动地图而不是标记