2020-10-07|閱讀時間 ‧ 約 3 分鐘

JSONP(JSON with Padding)

想從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長度限制。
分享至
成為作者繼續創作的動力吧!
小弟是一位軟體工程師,樂於幫助他人,撰寫技術文章除了幫助自己複習以外,也希望可以幫助到他人,若文章內容有誤,還請大大不吝給予指教!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言