HTML 中 script 標簽可以載入其他域下的js,比如我們經常引入一個其他域下線上cdn的jQuery。那如何利用這個特性實現從其他域下獲取數據呢? 可以先這樣試試: 這時候會向天氣介面發送請求獲取數據,獲取數據後做為 js 來執行。 但這裡有個問題, 數據是 JSON 格式的數據,直接作為 ...
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這個全局函數,在函數內部處理參數即可。