JSONP原理:首先在客戶端註冊一個函數;然後把函數的名字傳給伺服器;接著伺服器成JSON數據,並以Javascript語法的方式,將資料傳入客戶端註冊的函數中;最後在客戶端註冊函數中接收JSON即可。 JSONP #JSONP(JSON with Padding)是JSON的一種“使用模式”,可用於解決主流瀏覽器的跨域資料存取的問題。由於同源策略,一般來說位於 server1.example.com 的網頁無法與不是 server1.example.com的伺服器溝通,而 HTML 的 元素是例外。利用 <script> 元素的這個開放策略,網頁可以得到從其他來源動態產生的 JSON 資料,而這個使用模式就是所謂的 JSONP。用 JSONP 抓到的資料不是 JSON,而是任意的JavaScript,用 JavaScript 直譯器執行而不是用 JSON 解析器解析。 </p> <p><strong>JSONP的由來</strong></p> <p>根據瀏覽器同源策略,所謂同源就是協定、主機、連接埠號碼都相同時成為同源。 a 域的js不能直接存取b域名的信息,但是script 標籤的src屬性可以跨域引用文件,jsonp是請求之後後台包裝好一段json,並且把數據放在一個callback函數,返回一個js文件,動態引入這個文件,下載完成js之後,會去呼叫這個callback,透過這樣存取資料。 </p> <p><strong>JSONP有什麼用? </strong></p> <p>由於同源從略的限制,XMLHttpRequest只允許請求前源(網域、協定、連接埠)的資源,為了實現跨域請求,可以透過script標籤實現跨域請求,然後再服務端輸出JSON資料並執行回呼函數,從而解決跨域資料請求</p> <blockquote><p>推薦教程:《<a href="https://www.php.cn/js-tutorial.html" target="_blank">JS</a>》<br></p></blockquote>#