【发布时间】:2015-11-02 19:46:16
【问题描述】:
伙计们,
我正在尝试进行 ajax 调用以获取一些 JSON。我可以很容易地解决 Chrome 中的跨源问题,但在 IE 中,我让它工作而不抛出错误的唯一方法是使用 JSONP。我的问题是我不知道如何处理响应。我可以看到调用执行并在 fiddler 中返回 JSON,但我如何在下面的代码中捕获并使用它。
$.support.cors = true;
function callAjaxIE(){
$.ajax({
type: 'GET',
async: true,
url: usageUrl,
dataType: 'jsonp',
crossDomain: true,
jsonp: false,
jsonpCallback: processDataIE,
// cache: false,
success: function (data) {
alert('success');
//processData(data)
},
error: function (e){
console.log(e);
}
}).done(function (data) {
alert('done');
});
function processDataIE(){
alert('processing data ie');
}
当我运行它时,它会显示一个消息框,上面写着“处理数据即”,但那又如何。我如何处理结果?
更新:
所以我已经按照 Quentin 更新了代码。它不会进入“成功”块。它出现以下错误。
当我看提琴手时。 JSON就在那里。我如何获得它?
【问题讨论】:
-
“我可以看到调用执行并返回 JSON”——这是个问题,你需要它返回 JSONP。
-
您没有正确使用 JSONP。 jsonpCallback 需要一个函数,该函数应返回一个字符串,该字符串将用于回调名称或字符串回调名称。你的函数什么都不返回,所以......谁知道它会做什么。
标签: javascript jquery json ajax jsonp