我正在尝试使用 jsonp 实现跨域调用的 jQuery ajax 调用,代码如下 -
$.ajax({
async:true,
cached:true,
url: 'cfcs/TempRepository.cfc?method=getAllCategories'
+'&storeID='+ storeId
+'&callback=?',
type: 'get',
data: '',
dataType: 'jsonp',
success: PopulateCategoryObject,
error: function (xhr, status, error) {
console.log(xhr + ',' + status + ',' + error);
}
});
function PopulateCategoryObject(results) {
//populate the categories
}
我在这里对回调的使用感到困惑。如果我删除 $.ajax 的成功属性并使用 callback=PopulateCategoryObject 代替 callback=? 像 -
$.ajax({
async:true,
cached:true,
url: 'cfcs/TempRepository.cfc?method=getAllCategories'
+'&storeID='+ storeId
+'&callback=PopulateCategoryObject',
type: 'get',
data: '',
dataType: 'jsonp',
error: function (xhr, status, error) {
console.log(xhr + ',' + status + ',' + error);
}
});
它的不同之处在于,它返回的结果如下 -
PopulateCategoryObject, jQuery172012112959187034678_1376976441013( // data here )
并且,函数 PopulateCategoryObject 没有被执行。
我无法弄清楚如何在这里设置回调函数?为什么会在结果中添加“jQuery172012112959187034678_1376976441013”?
提前致谢。