2011-04-11 108 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