?????? 首先接觸jsonp是因?yàn)榭吹搅艘坏李},然后就去搜了一下這個(gè)很像json的東西是個(gè)啥玩意兒外里,這道題是這樣的:jquery ajax中都支持哪些返回類型录肯?
?????? 答案是:html溉仑,xml,json局服,jsonp钓瞭;
?????? 下面來介紹json(JavaScript Object Notation)和jsonp(JavaScript Object Notation with Padding)的區(qū)別:前面一個(gè)是一種數(shù)據(jù)格式,翻譯過來就是JS對(duì)象表示法淫奔,后面的則是一種非官方的跨域數(shù)據(jù)交互協(xié)議山涡。別人博客中的一個(gè)通俗易懂的例子:
??????? 前一個(gè)是地下黨交換情報(bào)的“暗號(hào)”,后一個(gè)是地下黨傳遞情報(bào)時(shí)的接頭方式唆迁;一個(gè)是描述信息的格式鸭丛,一個(gè)是信息傳遞雙方約定的方法。
? ? ? jsonp是如何產(chǎn)生的:由于Ajax跨域請(qǐng)求普通文件是不被允許的唐责,而帶有src屬性的標(biāo)簽類似于<script><img>等可以跨域調(diào)用一些文件鳞溉,綜合以上兩點(diǎn),前端攻城獅想到了在遠(yuǎn)端服務(wù)器上將數(shù)據(jù)裝進(jìn)js格式文件中鼠哥,而恰好json格式被原生js支持熟菲,并且數(shù)據(jù)易于解析,所以最終的解決辦法就是:web客戶端通過用調(diào)用腳本一樣的方式來調(diào)用遠(yuǎn)程服務(wù)器上動(dòng)態(tài)生成的js文件(一般是json后綴)朴恳,然后解析其中的數(shù)據(jù)科盛,這樣就實(shí)現(xiàn)了跨域的數(shù)據(jù)傳遞。
?????? 最后逐漸的形成了一種非正式的傳輸協(xié)議菜皂,人們稱之為JSONP贞绵。