【问题标题】:$.getJSON stop working in google maps api distancematrix$.getJSON 停止在谷歌地图 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

那么,这可能是什么问题?

【问题讨论】:

  • 也许您应该检查返回的错误。 stackoverflow.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:发生网络错误。”

标签: javascript ajax json google-maps


【解决方案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 服务也可能无法工作.
猜你喜欢
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
相关资源
最近更新 更多