【发布时间】:2012-02-11 07:10:02
【问题描述】:
我正在使用 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 请求?
【问题讨论】:
标签: jquery