jQuery的jsonp功能是一種跨域數(shù)據(jù)請(qǐng)求的技術(shù),它通過(guò)在script標(biāo)簽中實(shí)現(xiàn)跨域請(qǐng)求,以獲取服務(wù)器端的數(shù)據(jù)。其中,jsonp具有的數(shù)據(jù)處理功能只支持get請(qǐng)求方式,而且它的數(shù)據(jù)傳輸格式必須是jsonp格式的。
jsonp請(qǐng)求方式的基本格式是:
$.ajax({ url: 'http://server.url', dataType: 'jsonp', jsonp: 'callback', success: function(data) { console.log(data); } });
其中,url是服務(wù)器端的數(shù)據(jù)地址,dataType為jsonp,表示使用jsonp數(shù)據(jù)格式傳輸,而jsonp則是jsonp函數(shù)名稱;success函數(shù)是請(qǐng)求完成后的回調(diào)函數(shù),它可以接受從服務(wù)器返回的數(shù)據(jù)。
下面是具體的使用示例:
demo
上述例子請(qǐng)求了有道翻譯的API,并且使用了jsonp數(shù)據(jù)格式傳輸。控制臺(tái)中輸出了從服務(wù)器端獲取的數(shù)據(jù),可以看到數(shù)據(jù)中包含的內(nèi)容與翻譯結(jié)果相關(guān)。
需要注意的是,在使用jsonp的過(guò)程中,服務(wù)器端必須返回一段JS代碼,并且這段JS代碼必須通過(guò)jsonp函數(shù)進(jìn)行調(diào)用。而且服務(wù)器返回的JS代碼必須是一段合法的JOSN格式的代碼。