JSONP的工作原理是什么?
對(duì)于開發(fā)者來說,離不開API的開發(fā)和調(diào)用。在我們的日常開發(fā)中,如果調(diào)用一個(gè)第三方API,而這個(gè)第三方API是以json數(shù)據(jù)格式返回的,默認(rèn)是不能直接調(diào)用的(比如AJAX調(diào)用),因?yàn)闀?huì)涉及到跨域的問題。如何解決JSON跨域調(diào)用?那就得用JSONP了!
對(duì)JSON和JSONP區(qū)別最簡(jiǎn)單的理解就是,JSON是一種數(shù)據(jù)格式,而JSONP是一種數(shù)據(jù)調(diào)用。還有一種松散的理解:帶回調(diào)的JSON就是JSONP。
因?yàn)闉g覽器s的同源策略,在web上無法與服務(wù)器直接通信,使用JSONP解決瀏覽器的跨域數(shù)據(jù)訪問。
JSONP原理分析如上所述,出于安全考慮,所有主流瀏覽器都有相同的origin策略,但HTML中的ltscriptgt標(biāo)簽不受此限制(ltscriptgt標(biāo)簽沒有跨域限制)!所以我們可以利用這個(gè)特性與第三方進(jìn)行交流。
JSONP的整個(gè)工作流程如下:
1.一個(gè)腳本標(biāo)簽被用在調(diào)用者s頁面引用第三方API地址;
2.第三方響應(yīng)的數(shù)據(jù)是JSON數(shù)據(jù)的包,格式如下:
回?fù)?{nam:susan