0

我有一个 jQueryeach循环,它遍历三个JSONPurl 的列表,但是,其中的随机数只是失败并出现错误:Uncaught TypeError: Property 'callback' of object [object Window] is not a function.

通常是一两个,有时没有,但绝不是全部,我认为它与异步部分有关,但我不知道如何解决。

这是我的代码:

var feeds = ["JSONPUrl", "JSONPUrl", "JSONPUrl"];

$.each(feeds, function(index, feedUrl) {
    $.ajax({
    type: "GET",
    url: feedUrl,
    processData : true,
    data: {
        tagmode: "any",
        jsonp: "callback",
        callback: "callback"
    },
    jsonpCallback: "callback",
    dataType: "jsonp",
    success: function(data) {
        // Do some DOM manipulations with the data
    },
    error: function(x,y,z) {
    }
});
});​

有任何想法吗?

4

1 回答 1

2

?callback=callback由于硬编码callback属性,您的 URL 看起来像。去掉这个,jQuery 将自动为 JSONP 回调定义具有随机名称的临时函数。

data: {
    tagmode: "any",
    jsonp: "callback",     // <-- Do not forget to remove the trailing comma
    callback: "callback"   // <-- Remove this!
},
jsonpCallback: "callback", // <-- Remove this!

如果您真的想执行一个调用callback成功的函数,请将其包含在success处理程序中。

关于评论:如果您的服务器期望 JSONP 回调参数被称为“jsonp”而不是“回调”,请使用:

$.ajax({
    ...
    jsonp: "jsonp"
    ...
});
// results in http://..../?jsonp=jQuery234254342random2342etc
于 2012-07-13T21:02:53.033 回答