2010-12-03 40 views
3

我试图使用$.ajax()来调用Vimeo的API,但即使我指定了自己的命名函数,jquery也会将回调附加到我的URL。我需要完全控制GET URL字符串。防止jquery追加自己的回调

我的代码:

function fback(data) { 
    alert('data = ' + data); 
} 

$.ajax({ 
    url: 'http://vimeo.com/api/v2/group/processing/videos.json?format=jsonp&callback=fback', 
    dataType: "jsonp", 
    type: "GET", 
    cache: true, 
    success: fback, 
}); 

的GET请求转到:

http://vimeo.com/api/v2/group/processing/videos.json?format=jsonp&callback=fback&callback=jsonp1291384300228

我怎样才能避免这种自动回调此外?

回答

3

你只需要指定jsonpCallback option是你后的功能名称,如:

$.ajax({ 
    url: 'http://vimeo.com/api/v2/group/processing/videos.json?format=jsonp&callback=?', 
    jsonpCallback: "fback", 
    dataType: "jsonp", 
    type: "GET", 
    cache: true 
}); 

这样做是什么的而不是随机生成的名称(也没那么乱,但你它会使用''fback',导致:

http://vimeo.com/api/v2/group/processing/videos.json?format=jsonp&callback=fback 

You can test it out here

+0

jquery仍然会自动将'&callback = fback'部分追加到GET网址。在这种情况下,它是正确的函数名称。但它仍然在改变我的字符串,因为这个字符串需要被签名。除了在签名后将字符串中的回调拼接出来之外,还有其他方法可以阻止两个'&callback = fback'子字符串被附加到GET url吗? – moskovich 2010-12-03 17:40:56