我一直在为我认为如此简单的事情浪费大量时间,但没有很好的示例来说明 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×tamp=1354817353&sensor=true&_=1354817353398
根据我的阅读,“回调”参数是自动生成的,并且代码应该足够智能以调用成功函数或错误函数。
chrome 返回的错误是“Uncaught syntax error uncaught syntax error unexpected token ':'” 无论我尝试什么,javascript 代码总是调用错误函数。我添加了一个 jsonpCallback 参数(没有用),json 参数(没有用),将 dataType 更改为“json”(由于跨域错误而没有用)。
请帮忙。
最佳答案
$.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');}
});
关于javascript - jQuery ajax jsonp 调用总是得到意外的 token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750012/