我正在使用 jQuery 发出跨域 AJAX 请求,但我的回调函数没有触发(请参阅http://jsfiddle.net/zC8z5/).
function jsonpCallback(response){
$('#code').text(response.data);
}
$.ajax({
url: url,
dataType: 'jsonp',
error: function(xhr, status, error) {
alert(error);
},
success: function() {
alert("success");
},
jsonp: false,
jsonpCallback: 'jsonpCallback'
});
根据文档:
从 jQuery 1.5 开始,将 jsonp 选项设置为 false 会阻止 jQuery
将“?callback”字符串添加到 URL 或尝试使用
“=?”进行转型。在这种情况下,您还应该显式设置
jsonpCallback 设置。例如,{ jsonp: false, jsonpCallback:
“回调名称”}
但是,如果我不指定回调,而只是处理成功事件中的数据,则它可以工作(请参阅http://jsfiddle.net/2gBRT/).
$.ajax({
url: url,
dataType: 'jsonp',
error: function(xhr, status, error) {
alert(error);
},
success: function(data) {
jsonpCallback(data);
}
});
我是否误解了如何使用 jQuery 发出 JSONP 请求?