我們試圖根據緯度經度獲取用戶的信息。Google地圖給出JSONP錯誤地理意想不到的標記:或無效標籤
我們的代碼一直工作正常,直到幾個星期前我們開始出現這個錯誤。
這裏是我們的代碼:
var reverse_geo_url = "http://maps.google.com/maps/geo?q=" + lat + "," + lng + "&key=[key]&sensor=false"
console.log("Calling " + reverse_geo_url);
new $.ajax(reverse_geo_url, {
dataType: "jsonp",
timeout: 5000,
success: function (data) {
// yay
}
});
問題是,我們一下子變得越來越
Uncaught SyntaxError: Unexpected token :
這裏是從谷歌的服務器實例響應(當我直接到URL)
{
"name": "33.0024912,-88.4218782",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [ {
"id": "p1",
"address": "Paulette Rd, Macon, MS 39341, USA",
"AddressDetails": {
"Accuracy" : 6,
"Country" : {
"AdministrativeArea" : {
"AdministrativeAreaName" : "MS",
"Locality" : {
"LocalityName" : "Macon",
"PostalCode" : {
"PostalCodeNumber" : "39341"
},
"Thoroughfare" : {
"ThoroughfareName" : "Paulette Rd"
}
}
},
"CountryName" : "USA",
"CountryNameCode" : "US"
}
},
"ExtendedData": {
"LatLonBox": {
"north": 32.9994289,
"south": 32.9891822,
"east": -88.4094885,
"west": -88.4393238
}
},
"Point": {
"coordinates": [ -88.4238788, 32.9952338, 0 ]
}
} ]
}
https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingResponses
訪問地理編碼服務是異步的,因爲Google地圖 API需要調用外部服務器。因此, 需要傳遞迴調方法,以在完成 請求時執行。這個回調方法處理結果。請注意, 地理編碼器可能會返回多個結果。
根據文檔回調應該支持。 JQuery添加了回調頭,因此我不明白Google爲什麼不尊重它。
*編輯:作爲參考,我的應用程序試圖調用的URL是http://maps.google.com/maps/geo?q=33.8024912,-84.4218782 &鍵= [我這裏的關鍵] &傳感器=假&回調= jQuery16409036452900618315_1335293866369 & _ = 1335293866469 這是谷歌的一面嗎?或者在我們這邊?再一次,這個代碼用來完美工作。
我在StackOverFlow上看到的其他帖子,人們說,當這個錯誤顯示在意味着服務器不支持JSONP ...什麼讓我感到困惑的是,這曾經工作...沒有谷歌改變他們的API?
jQuery解析後,ajax調用的URL是什麼? – 2012-04-24 18:45:06
http://maps.google.com/maps/geo?q=33.8024912,-84.4218782&key= [my key here]&sensor = false&callback = jQuery16409036452900618315_1335293866369&_ = 1335293866469 – K2xL 2012-04-24 18:58:22
您是否檢查過使用配額和結算信息?文檔中有一個註釋:「*注意:Maps API使用限制將從2012年初開始實施。」 – Christian 2012-04-24 19:05:48