在web開發的時候難免會遇到跨域求情資料的問題,此時使用jsonp是比較簡便的。
a.com網域名稱下的js,是無法訪問網域名稱為b.com下的js的,會報跨域的錯誤:
所以你可以動態建立乙個標籤,把他的src屬性設定成你要請求的伺服器的url,如:】
就等於是使用去向伺服器請求,但是這個是時候伺服器不能直接返回json(所以這是需要伺服器支援的),因為這個請求完後會立即執行,很明顯噹噹乙個json不是乙個合法的js語句,你得把它變成乙個呼叫的方法,如jsonpcallback();,當然,你此時的js檔案中要有jsonpcallback這個函式。簡單**如下:
伺服器端:
<?php
echo "jsonpcallback()"
?>//返回的乙個函式
js端:
//這裡的jsonpcallback函式名,伺服器跟客戶端要一致哦
JSONP跨域請求
看到jsonp我們會很自然的想到json,但它們卻有很大的不同,json是一種輕量級的資料交換格式,而jsonp可以說是一種非官方的資料互動協議。jsonp json with padding 利用jsonp可以從別的網域名稱下獲取資料,即跨域獲取資料。由於同源策略不允許xmlhttprequest...
jsonp跨域原理
jsonp跨域請求是借助於表單元素的 src 屬性的 跨域 實現的,具體實現如下 1 html頁面 2 服務端 restcontroller public class jsonpcontroller return callback jsonp和ajax並無關係,只是借助了src屬性的 跨域 特性來實...
JSONP跨域請求
前端常用ajax請求來實現不重新整理頁面方式向伺服器請求資料,但它受瀏覽器同源策略的影響而無法實現跨域請求。然而script標籤src屬性的引用卻是不受跨越限制的,基於此可以傳送跨域請求,服務端不再是返回json格式的資料,而是返回一段呼叫某個函式的js 在src中進行了呼叫。您所在的城市天氣情況 ...