當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSONP 原理
HTML 中 script 標簽可以加載其他域下的js,比如我們經常引入一個其他域下線上cdn的jQuery。那如何利用這個特性實現從其他域下獲取數據呢?
可以先這樣試試:
<script src="http://api.jirengu.com/weather.php"></script>這時候會向天氣接口發送請求獲取數據,獲取數據后做為 js 來執行。 但這里有個問題, 數據是 JSON 格式的數據,直接作為 JS 運行的話我如何去得到這個數據來操作呢?
這樣試試:
<script src="http://api.jirengu.com/weather.php?callback=showData"></script>這個請求到達后端后,后端會去解析callback這個參數獲取到字符串showData,在發送數據做如下處理:
之前后端返回數據: {"city": "hangzhou", "weather": "晴天"}
現在后端返回數據: showData({"city": "hangzhou", "weather": "晴天"})
前端script標簽在加載數據后會把 「showData({“city”: “hangzhou”, “weather”: “晴天”})」做為 js 來執行,這實際上就是調用showData這個函數,同時參數是 {“city”: “hangzhou”, “weather”: “晴天”}。
用戶只需要在加載提前在頁面定義好showData這個全局函數,在函數內部處理參數即可。
更多專業前端知識,請上 【猿2048】www.mk2048.com
總結
- 上一篇: js 值和引用
- 下一篇: JS基础:求一组数中的最大最小值,以及所