什么是JSONP
首先提一下JSON這個(gè)概念者铜,JSON是一種輕量級(jí)的數(shù)據(jù)傳輸格式,被廣泛應(yīng)用于當(dāng)前Web應(yīng)用中。JSON格式數(shù)據(jù)的編碼和解析基本在所有主流語(yǔ)言中都被實(shí)現(xiàn)妆丘,所以現(xiàn)在大部分前后端分離的架構(gòu)都以JSON格式進(jìn)行數(shù)據(jù)的傳輸棚辽。
那么JSONP是什么呢技竟?
首先拋出瀏覽器同源策略這個(gè)概念,為了保證用戶訪問(wèn)的安全屈藐,現(xiàn)代瀏覽器使用了同源策略榔组,即不允許訪問(wèn)非同源的頁(yè)面熙尉,詳細(xì)的概念大家可以自行百度。這里大家只要知道搓扯,在ajax中检痰,不允許請(qǐng)求非同源的URL就可以了,比如www.a.com下的一個(gè)頁(yè)面锨推,其中的ajax請(qǐng)求是不允許訪問(wèn)www.b.com/c.php這樣一個(gè)頁(yè)面的铅歼。
JSONP就是用來(lái)解決跨域請(qǐng)求問(wèn)題的,那么具體是怎么實(shí)現(xiàn)的呢换可?
JSONP原理
ajax請(qǐng)求受同源策略影響谭贪,不允許進(jìn)行跨域請(qǐng)求,而script標(biāo)簽src屬性中的鏈接卻可以訪問(wèn)跨域的js腳本锦担,利用這個(gè)特性俭识,服務(wù)端不再返回JSON格式的數(shù)據(jù),而是返回一段調(diào)用某個(gè)函數(shù)的js代碼洞渔,在src中進(jìn)行了調(diào)用套媚,這樣實(shí)現(xiàn)了跨域。
轉(zhuǎn)自原文:https://blog.csdn.net/u011897301/article/details/52679486