谷歌地图地理给出 JSONP 错误意外的令牌:或无效的标签
Google Maps Geo giving JSONP error Unexpected token : or invalid label
我们试图根据经度获取用户的信息。
我们的代码一直运行良好,直到几周前我们开始收到此错误。
这是我们的代码:
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 :
这是来自谷歌服务器的示例响应(当我直接转到网址时)
{
"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
访问地理编码服务是异步的,因为谷歌地图 API 需要调用外部服务器。出于这个原因,你 需要传递回调方法以在完成 请求。此回调方法处理结果。请注意, 地理编码器可能会返回多个结果。
根据文档回调应该是支持的。JQuery添加了回调头,所以我不明白为什么谷歌不尊重它。
*编辑:作为参考,我的应用程序尝试调用的网址是 http://maps.google.com/maps/geo?q=33.8024912,-84.4218782&key=[我的密钥在这里]&sensor=false&callback=jQuery16409036452900618315_1335293866369&_=1335293866469这是谷歌这边的事情吗?还是我们这边有什么东西?同样,这段代码曾经完美地工作过。
我在StackOverFlow上看到的其他帖子,人们说当此错误出现时意味着服务器不支持JSONP...令我困惑的是,这曾经有效...谷歌是否更改了他们的API?
出于好奇,为什么要做 ajax 调用来进行地理编码?您可以直接使用Google Maps API,更简单:https://developers.google.com/maps/documentation/javascript/geocoding
通读文档,似乎您无需再注册即可使用此 api,
我成功地使用了这个:
var url = string.Format("http://maps.google.com/maps/geo?q={0}&output=xml", encodedPostCode);
希望这有帮助
- 使用Javascript获取Twitter访问令牌
- FB.login访问令牌facebook javascript SDK
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- Phonegap:获取访问令牌时出现LinkedIn登录错误
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 未捕获的语法错误:意外的令牌,
- 访问令牌和响应数据
- jQuery$.getJSON抛出意外令牌
- 访问令牌facebook未激活
- 如何使用Google撤销Oauth令牌'的Javascript API
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- OAuth和访问令牌
- javascript api,用于在第三方域上存储身份验证令牌
- 意外的令牌模块生成失败:SyntaxError
- 为什么我在下面的..of循环中得到意外令牌
- 如何安全地获取&使用Facebook应用程序访问令牌发送通知使用PHP&Javascript
- 函数返回错误'令牌{'
- Angular / JADE - 为什么我在尝试在 ng-href 属性中使用 Angular 标签时收到错误“意外令牌
- 谷歌地图地理给出 JSONP 错误意外的令牌:或无效的标签