我正在使用JQuery來生成JSONP請求,而且文檔相當混亂。JQuery JSONP隨機生成回調函數
我有幾個問題:
- 一個JSONP電話永遠是異步,是正確的?那麼
async:false
會被忽略? - 如果指定了
jsonpCallback
參數,則在檢索數據時將執行此函數。但之後,success
回調將被執行。 jquery建議不要指定jsonpCallback
函數(僅用於緩存?)。這個函數與success
函數有什麼作用? - 如果未指定
jsonpCallback
,則會創建一個隨機回調函數並將其附加到window
對象。像jQuery1360574548776335413_1776656584447
,它有什麼作用?它是如何工作的?它與success
函數有任何關係嗎? error
回調從未被調用過嗎?
這裏是我的代碼:
(function($) {
var url = "https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC";
$.ajax({
type: 'GET',
url: url,
// JSONP always async?
async: false,
jsonp: "callback",
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
console.dir(json);
},
// Error never called?
error: function(e) {
console.log(e.message);
}
});
})(jQuery);
function jsonCallback(json) {
$(".test").html(json.volumeInfo.title);
}
瞭解'jsonp'實際上是如何在scenese後面工作可能會有所幫助if你還沒有。 http://en.wikipedia.org/wiki/JSONP – 2013-05-06 03:30:19
謝謝,是的,我讀過幾篇關於它的文檔。我發現JQuery API非常困難。特別是隨機生成的回調 – Leonardo 2013-05-06 03:36:27
這裏有一個簡單的手工JSONP函數,它可能會給你一個更好的理解。 http://jsfiddle.net/Axema/您還應該查看瀏覽器中發出的請求,以便您可以確切瞭解響應的外觀。它基本上只是一個正在運行的腳本。 – thebreiflabb 2013-05-06 03:39:22