我在Java Script中有以下代码:
var requestData =
{
"homeMobileCountryCode": 732,
"homeMobileNetworkCode": 123,
"radioType": "gsm",
"carrier": "Vodafone",
"cellTowers":
[
{
"cellId": 21282,
"locationAreaCode": 2110,
"mobileCountryCode": 732,
"mobileNetworkCode": 123,
"age": 0,
"signalStrength": (57 - 110)
}
]
}
var encoded = $.toJSON(requestData);
$.ajax({
url: "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyA8UJK3m8_X_6GV3T5EWHc86GIuMhITu34",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: encoded,
success: function (response) {
var location = response.location;
var lat = location.latitude;
var lon = location.longitude;
var address = location.address.street_number + " " + location.address.street + " " + location.address.city + " " + location.address.county + " " + location.address.country;
},
error: function (er) {
alert("error " + er.message + " codigo: " + er.code);
}
});
请求不会返回任何内容并且没有返回警告错误:apears对象未定义,所以,有没有人使用JSON调用此服务google的示例?我正在研究ASP.Net
您好我没有做出此类请求的经验,我有以下代码:
Tower tower = new Tower();
tower.MobileCountryCode = "310";
tower.MobileNetworkCode = "260";
tower.CellsTowers = new List<CellTower>();
tower.CellsTowers.Add(new CellTower()
{
CellId = "39627456",
LocationAreaCode = "40495",
MobileCountryCode = "310",
MobileNetworkCode = "260",
SignalStrength = "-95",
Age = "0"
});
string jsonFormat = ToJSON(tower);
WebRequest request = WebRequest.Create("https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyA8UJK3m8_X_6GV3T5EWHc86GIuMhITu34" + jsonFormat);
我有以下功能:
string ToJSON(object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
但服务响应:错误400,无效请求......
任何想法??
答案 0 :(得分:1)
您正在尝试使用JavaScript中的Google Maps Geolocation API。这是一个JSON API。它仅用于您的服务器,而不能用于JavaScript代码。
API返回JSON结果,除非API允许通过CORS或提供JSONP响应,否则您无法使用JavaScript的跨域请求。除非我弄错了,否则这个API都没有,所以你不能在JavaScript中使用它。
如果您想使用JavaScript进行地理编码,可以使用Maps API中的Geocoding Service。我不认为这支持你正在使用的无线电塔的东西 - 至少文档没有提到它。
此外,您在问题中发布了API密钥。如果这是一个浏览器API密钥,那没问题,但如果它是您通常与Geolocation API一起使用的那种服务器API密钥,那么该密钥现在已被破坏。转到您的API Console,删除此密钥,然后创建一个新密钥 - 并且不要共享该新密钥!
答案 1 :(得分:0)
尝试 var jsonFormat = JSON.stringify(rpcReq);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
另请参阅API文档 https://developers.google.com/maps/documentation/business/geolocation/?hl=zh-CN
并忽略上述关于&#34;仅限服务器&#34;的陈述。
(关于API密钥的评论通常是有效的。)