2011-04-11 58 views
0

因此,这里是我的代码:问题JavaScript回调

$.getJSON("http:\/\/tinygeocoder.com\/create-api.php?g=" + lat + "," + lng + "&callback=?", function(data) { 
     alert(data);}; 

,它的工作在Chrome和Safari罚款...但在移动Safari浏览器失败。这里是我得到的错误:

http://tinygeocoder.com/create-api.php?g=39.67997936,-104.(removed for space)&callback=jsonp1302553994489 
SyntaxError: Parse error 

任何有什么想法?

+0

所有这些(对我来说都很奇怪)转义('\/\ /')是必要的吗? – 2011-04-11 20:39:23

+0

你使用的是什么版本的jQuery?为了测试,把它放在你的JS:'alert(jQuery.fn.jquery);'中。 – Blender 2011-04-11 20:40:22

+0

无论是否有逃脱,我都会得到相同的错误。 – thatmiddleway 2011-04-11 20:41:58

回答

3

当我尝试浏览到URL,我得到这个响应返回:

Bummer, we've had too many queries and one of our data sources has decided not to work. Please <a href="mailto:[email protected]">let us know</a>. 

由于这不是JSON,它会导致你的解析错误。

+0

只需再试一次。它们有时会超载,并且会弹出此错误。我偶尔会用镀铬的方式得到它。可能现在我们把它们放在了stackoverflow上... – thatmiddleway 2011-04-11 20:48:56

+1

'...已决定不工作。'我们应该笑或哭。 – 2011-04-11 20:51:31

+1

+1打我吧:) @jtmkrueger我也相信这是你的问题 - 改变'$ .getJSON()'为'$ .get()'摆脱移动Safari的错误,因为你不再坚持响应是JSON并迫使jQuery解析它。不幸的是,tinygeocoder以200 OK而不是错误条件返回这个错误。 – 2011-04-11 20:53:38

0

看起来你可能在你的latlng变量中有一些URL敏感字符。你可以尝试在这些上使用encodeURIComponent()

+0

这并没有改变任何东西。 – thatmiddleway 2011-04-11 21:04:01