首先在客戶端注冊一個callback, 然后把callback的名字傳給服務(wù)器池凄。此時,服務(wù)器先生成 json 數(shù)據(jù)肿仑。 然后以 javascript 語法的方式,生成一個function , function 名字就是傳遞上來的參數(shù) jsonp尤慰。最后將 json 數(shù)據(jù)直接以入?yún)⒌姆绞剑胖玫?function 中杯道,這樣就生成了一段 js 語法的文檔责蝠,返回給客戶端党巾。
客戶端瀏覽器,解析script標(biāo)簽驳规,并執(zhí)行返回的 javascript 文檔创肥,此時數(shù)據(jù)作為參數(shù),傳入到了客戶端預(yù)先定義好的 callback 函數(shù)里叹侄。
var callbackName = 'callback';
window[callbackName] = function (data) {
alert(data);
// 對返回的數(shù)據(jù)做后續(xù)處理
}
var script = document.createElement('script');
script.src = 'http://hf-test.haoju.cn/esf/ajax/test?callback='+callbackName;
document.body.appendChild(script);