使用jquery ajax调用MapQuest地理代码api

使用jquery ajax调用MapQuest地理代码api,jquery,ajax,mapquest,Jquery,Ajax,Mapquest,我试图使用jquery ajax()调用mapquest api,但一直出现以下错误: Statuscode:400 “请求中的非法参数:解析请求中的JSON时出错:JSONObject文本必须在的字符0处以“{”开头,请参阅。”http://www.mapquestapi.com/geocoding/ 有关正确设置位置格式的详细信息。“ 下面是我正在进行的jquery ajax调用: $.ajax({ url: "http://www.mapquestapi.com/geocoding

我试图使用jquery ajax()调用mapquest api,但一直出现以下错误:

Statuscode:400

“请求中的非法参数:解析请求中的JSON时出错:JSONObject文本必须在的字符0处以“{”开头,请参阅。”http://www.mapquestapi.com/geocoding/ 有关正确设置位置格式的详细信息。“

下面是我正在进行的jquery ajax调用:

$.ajax({
    url: "http://www.mapquestapi.com/geocoding/v1/address?key=<mykey>",
    dataType: 'json',
    type: 'POST',
    contentType:'json',
    data: {json: {location: { "postalCode": "98765"}, options: { thumbMaps: false} } },
    success: function(data) { log( data ) },
    error: function(data) { log( 'error occurred - ' + zipCode + ' - ' + data ) }
});
任何帮助都将不胜感激


Matt

在传递位置信息时,您可能会有一组额外的括号

试试这个:

$.ajax({ url: "http://www.mapquestapi.com/geocoding/v1/address?key=", dataType: 'json', type: 'POST', contentType:'json', data: {location: { "postalCode": "98765"}, options: { thumbMaps: false} }, success: function(data) { log( data ) }, error: function(data) { log( 'error occurred - ' + zipCode + ' - ' + data ) } }); $.ajax({ url:“http://www.mapquestapi.com/geocoding/v1/address?key=", 数据类型:“json”, 键入:“POST”, contentType:'json', 数据:{位置:{“postalCode”:“98765”},选项:{thumbMaps:false}, 成功:函数(数据){log(数据)}, 错误:函数(数据){log('发生错误-'+zipCode+'-'+data)} });
这真的是因为你的json不是真正的json字符串。你不能像那样将JSONObject传递到url中。你必须先对它进行字符串化。我和你有相同的错误,在我对它进行字符串化之后,它就起作用了。它在IE7中不起作用,所以你必须使用JSON2使它与IE7兼容:在这里找到:

var-key=;
$.ajax({
url:“http://www.mapquestapi.com/geocoding/v1/address",
数据类型:“json”,
键入:“POST”,
contentType:'json',
数据:{
键:解码元件(键),
json:json.stringify(
{
位置:{“postalCode”:“98765”},选项:{thumbMaps:false}
}) 
},
成功:函数(数据){log(数据)},
错误:函数(数据){log('发生错误-'+zipCode+'-'+data)}
});
$.ajax({ url: "http://www.mapquestapi.com/geocoding/v1/address?key=", dataType: 'json', type: 'POST', contentType:'json', data: {location: { "postalCode": "98765"}, options: { thumbMaps: false} }, success: function(data) { log( data ) }, error: function(data) { log( 'error occurred - ' + zipCode + ' - ' + data ) } });
var key = <mykey>;
$.ajax({
    url: "http://www.mapquestapi.com/geocoding/v1/address",
    dataType: 'json',
    type: 'POST',
    contentType:'json',
    data: {
        key: decodeURIComponent(key),
        json : JSON.stringify( 
            {
                location: { "postalCode": "98765"}, options: { thumbMaps: false}
            }) 
    },
    success: function(data) { log( data ) },
    error: function(data) { log( 'error occurred - ' + zipCode + ' - ' + data ) }
});