JSONP(JSON with Padding)

閱讀時間約 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會員
161Content count
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
Cross-Origin Resource Sharing 簡稱 CORS,中文為跨來源資源共享。 上一篇提到web瀏覽器有同源政策的限制,而CORS則是一種安全確認機制,讓瀏覽器和伺服器之間能確保安全的進行cross origin資源共享,即若伺服器同意,即可達成跨來源資源共享。
同源政策是瀏覽器基於安全性考量而存在的一個政策,針對瀏覽器指令碼的限制。
REST全名為Representational State Transfer,它是一種軟體架構風格,不是一種標準。 以REST架構設計的系統就可以稱為 RESTful,就像是美麗 (Beauty) 的事物可以稱為 Beautiful。
ORM 中文為「物件關聯對映」,是一種介於程式與DB中間的程式設計技術,將程式語言轉換成SQL語言來對DB做操作。
簡單來說,其實就是想要完成一件事情,可以使用不同的策略去達成。
Cross-Origin Resource Sharing 簡稱 CORS,中文為跨來源資源共享。 上一篇提到web瀏覽器有同源政策的限制,而CORS則是一種安全確認機制,讓瀏覽器和伺服器之間能確保安全的進行cross origin資源共享,即若伺服器同意,即可達成跨來源資源共享。
同源政策是瀏覽器基於安全性考量而存在的一個政策,針對瀏覽器指令碼的限制。
REST全名為Representational State Transfer,它是一種軟體架構風格,不是一種標準。 以REST架構設計的系統就可以稱為 RESTful,就像是美麗 (Beauty) 的事物可以稱為 Beautiful。
ORM 中文為「物件關聯對映」,是一種介於程式與DB中間的程式設計技術,將程式語言轉換成SQL語言來對DB做操作。
簡單來說,其實就是想要完成一件事情,可以使用不同的策略去達成。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
透過 Netlify function 提供的 FaaS 服務,解決無法佈署 Json-Server 以及其他 live server 到 Netlify 的問題。
Thumbnail
解析成List List items=json.decode(jsonStr); print(items[0]["your_key"]); 解析成Map Map<String, dynamic> user = json.decode(json); print('${user['your_k
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
最近因為想要花些時間做完一個完整的SideProject,以前總是懂得怎麼使用,拼拼湊湊完成一個塞趴卷就交卷了,但都沒時間去真正理解這些原理的應用,而Laravel 框架本身支持的登入登出的工具,就有好多種。
Thumbnail
json 在網站 API 中,python 寫 code 時都很常用,但沒有適當工具時,常常擠在一起,可讀性不好,線上以及本地端也都有很多好用的工具,這個 jsoncrack 視覺化特別棒!
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
Thumbnail
State management 首先我們先來寫一些前台存 token 和刪除 token 的方法在 vuex sate management,檔案位置在 src/store/index.ts Login 接下來我們來寫一下登入頁面在 src/components/login.vue ,以下是 sc
Thumbnail
django 這邊需要使用 Django REST framework (drf) 及 drf 官方推薦實作 JWT 的 Django-rest-framework-simplejwt 這兩個套件。 settings.py 再來設定 django 的 back_end/settings.py 引入,
Thumbnail
session & token 驗證機制早期是用 session,server 這裡會發一個 session 給 client,並在資料庫記錄這個 session 屬於誰,而且每個裝置都會記一組 session,這會造成 server 這邊需要記錄大量的資料。 後來發展出 token,client
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
透過 Netlify function 提供的 FaaS 服務,解決無法佈署 Json-Server 以及其他 live server 到 Netlify 的問題。
Thumbnail
解析成List List items=json.decode(jsonStr); print(items[0]["your_key"]); 解析成Map Map<String, dynamic> user = json.decode(json); print('${user['your_k
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
最近因為想要花些時間做完一個完整的SideProject,以前總是懂得怎麼使用,拼拼湊湊完成一個塞趴卷就交卷了,但都沒時間去真正理解這些原理的應用,而Laravel 框架本身支持的登入登出的工具,就有好多種。
Thumbnail
json 在網站 API 中,python 寫 code 時都很常用,但沒有適當工具時,常常擠在一起,可讀性不好,線上以及本地端也都有很多好用的工具,這個 jsoncrack 視覺化特別棒!
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
Thumbnail
State management 首先我們先來寫一些前台存 token 和刪除 token 的方法在 vuex sate management,檔案位置在 src/store/index.ts Login 接下來我們來寫一下登入頁面在 src/components/login.vue ,以下是 sc
Thumbnail
django 這邊需要使用 Django REST framework (drf) 及 drf 官方推薦實作 JWT 的 Django-rest-framework-simplejwt 這兩個套件。 settings.py 再來設定 django 的 back_end/settings.py 引入,
Thumbnail
session & token 驗證機制早期是用 session,server 這裡會發一個 session 給 client,並在資料庫記錄這個 session 屬於誰,而且每個裝置都會記一組 session,這會造成 server 這邊需要記錄大量的資料。 後來發展出 token,client