2010-12-03 42 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