2012-07-13 64 views
0

我有一个jQuery each循环,它通过三个JSONP网址的列表,但是,它们的随机数只是因为错误而失败:Uncaught TypeError: Property 'callback' of object [object Window] is not a function为什么随机数的这些JSONP请求失败?

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

这里是我的代码:

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

你必须让一些代码,我猜 – Esailija 2012-07-13 20:36:26

+0

能否请您解释一下吗? – 2012-07-13 20:53:00

+0

您需要包含正在执行ajax请求的代码,以便我们可以为您提供帮助。你提到一个jQuery'each'循环......在你的文章中包含该循环。 – MrOBrian 2012-07-13 20:56:24

回答

2

由于硬编码的callback属性,您的URL看起来像?callback=callback。除去这个,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 
+0

仍在做,但回调是由'jsonp'而不是回调定义的。 – 2012-07-13 21:11:05

+0

没有工作,同样的错误,但现在所有三个 – 2012-07-13 21:18:52

+0

现在我得到:jsonp未定义 – 2012-07-13 21:23:03

相关问题