JSONP(JSON with Padding)

2020/10/07閱讀時間約 2 分鐘
想從javascript拿到不同源的資料,除了上一篇介紹的CORS,其實還有一個東西叫JSOP,是指透過<script src="xxx"></script>的方式繞過同源政策來實現cross origin。
事實上我們前端常用的jquery, angular, vue等等,透過cdn import進來的url一定都是非同源,那為什麼都沒有cross origin相關錯誤訊息出現呢? 因為script tag的src attribute不受同源政策限制。
以下直接用程式碼來了解:
利用<script src="xxx"></script>透過get method來要資料,傳入user id以及callback名稱,user id是讓server動態產生指定user的資料用的,callback是讓server知道javascript的callback function叫什麼名字。
後端其實就是根據傳入的user id抓取資料後,回傳一段js程式碼來呼叫前端的callback function(receiveData)把資料帶進去。
現在很少人在用JSONP了,因為只能用get method來送request,敏感資料不可能這樣傳,且如果需要帶進去的參數比較多,也有可能超過url長度限制。
為什麼會看到廣告
20會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!