7/80—
layout: JSONP 的工作原理
title: JSONP 的工作原理
date: 2017-11-15 21:06:47
根據瀏覽器同源策略,所謂同源就是協(xié)議、主機、端口號都相同時(shí)成為同源。a 域的js不能直接訪(fǎng)問(wèn) b域名的信息,但是script 標簽的src屬性可以跨域引用文件,jsonp是請求之后后臺包裝好一段json,并且把數據放在一個(gè)callback函數,返回一個(gè)js文件,動(dòng)態(tài)引入這個(gè)文件,下載完成js之后,會(huì )去調用這個(gè)callback,通過(guò)這樣訪(fǎng)問(wèn)數據。
2. JSONP有什么用由于同源從略的限制,XMLHttpRequest只允許請求前源(域名、協(xié)議、端口)的資源,為了實(shí)現跨域請求,可以通過(guò)script標簽實(shí)現跨域請求,然后再服務(wù)端輸出JSON數據并執行回調函數,從而解決跨域數據請求
3. 如何使用JSONP HTML代碼PHP代碼
4. JSONP原理
首先在客戶(hù)端注冊一個(gè)callback,然后把callback的名字傳給服務(wù)器。此時(shí),服務(wù)器先生成json數據,然后以javascript語(yǔ)法的方式,生成function,function名字就是傳遞上來(lái)I帶參數jsonp。最后將json數據直接以入參的方式,放置function中,這樣就生成js語(yǔ)法的文檔,返回給客戶(hù)端??蛻?hù)端瀏覽器,解析script變遷,并執行返回javascript文檔,此時(shí)數據作為參數,傳入了客戶(hù)端預先定義好的callback函數里。
簡(jiǎn)單的說(shuō),就是利用script標簽沒(méi)有跨域限制的“漏洞”來(lái)達到與第三方通訊的目的。