jQuery ajax jsonp调用总是会出现意外的令牌错误

时间:2012-12-06 18:20:47

标签: javascript jquery html ajax jsonp

我一直在浪费大量时间来处理我认为如此简单的事情,但是没有很好的例子可以说明ajax调用的工作方式和内容。

这是我的javascript代码:

$.ajax({
type: 'GET',
url: 'https://maps.googleapis.com/maps/api/timezone/json',
dataType: 'jsonp',
data: {
    location: myLoc,
    timestamp: myTime,
    sensor: true
},
success: function(){alert('OK');},
error: function(){alert('FAIL');}
})
}

变量“myLoc”和“myTime”不是问题。事实上,如果我将URI剪切并粘贴到我的浏览器中,它就可以正常工作并显示数据:https://maps.googleapis.com/maps/api/timezone/json?callback=jQuery18307430207263678312_1354817349576&location=36.7468422%2C-119.7725868&timestamp=1354817353&sensor=true&_=1354817353398

根据我一直在阅读的内容,“callback”参数是自动生成的,并且代码应该足够聪明,可以调用成功函数或错误函数。

chrome返回的错误是“Uncaught syntax error unexpected token':'” 无论我尝试什么,javascript代码总是调用错误函数。我添加了一个jsonpCallback参数(不起作用),json参数(不起作用),将dataType更改为“json”(由于跨域错误而无效)。

请帮忙。

1 个答案:

答案 0 :(得分:0)

$.ajax({
    type: 'GET',
    url: 'https://maps.googleapis.com/maps/api/timezone/json',
    dataType: 'jsonp',
    contentType: 'application/json; charset=utf-8',
    data: JSON.Stringify({
        location: myLoc,
        timestamp: myTime,
        sensor: true
    }),
    success: function(){alert('OK');},
    error: function(){alert('FAIL');}
});