国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS中的JSONP實例解析

2019-11-19 18:44:46
字體:
來源:轉載
供稿:網友

概念

      首先呢,Json和JSONP是不一樣的哦。Json呢,是眾多數據存儲的其中一種格式,是數據書寫方式的其中一種。好比是大中華眾多詩體的一種(比如說是七言詩吧)。這種詩體規定了: 這種詩體要包含題目,每行詩句的字數(7個字) 等等的文本格式。而Json所規定的文本格式是這樣子的

(Json格式示意圖)

   而JSONP呢,它是一種特殊的通訊方式,使用它能夠輕松繞過瀏覽器的同源安全限制,達到加載來自不同源的資源(腳本, 圖片, 其他)的效果。比如說,您是一個王國的王子,你意外地喜歡上了附近一個小城鎮里面的一位漂亮年輕的姑娘(資源),你想和她見面并進一步往下發展(獲取資源)。但是呢,您的父親國王先生(瀏覽器)可不同意,國王認為這個姑娘不是王室的女孩(非同源的資源),配不上王子,把王子困在城堡里面的同時,還往城堡外放好多士兵監察,禁止外人進入(瀏覽器的同源安全限制)。但是王子對愛非常堅持,他試過多種方式與這個姑娘聯系,比如說讓太監歐巴帶封信給漂亮姑娘(PUT,GET,POST等等),但是呢,每當到達城門的時候,士兵就會發現這封信的地址是給小姑娘的,于是屢屢禁止了太監出去(獲取外部資源時,PUT,GET,POST不奏效)。于是王子想到了一種特殊的通訊方式,就是飛鴿傳書(JSONP),小鴿子呢能夠飛躍城堡,從而避開士兵的監察(繞過瀏覽器的同源安全限制),來達到與姑娘通訊的效果(與跨域資源共享CORS的通訊實現啦!O(∩_∩)O)。最終,經過九九八十一難之后,王子喜歡上了太監(∑(っ °Д °;)っ 人生處處充滿驚喜...)

具體的實現方法

    要達到這種通訊效果,王子(發送請求的方式)和姑娘(服務端)都要有所準備。

 王子在發送JSONP請求的時候,首先需要一只鴿子吧(使用Jsonp), 再來呢,需要一封信綁在鴿子上(地址欄中的callback參數)

$http.jsonp("

 其他細節

    使用JSONP的時候,AngularJS會生成一個 <script> 標簽并插入到DOM中進行請求,響應成功之后會把該節點刪除(刪除節點這點具體Angular版本不同可能會有所不同吧)

  其中,CALLBACK會被替換成一個特地為此請求生成的自定義函數,即是由

$http.jsonp("變成

<script src=">

   因此當我們自己開發JSONP的后端服務時,要確保響應數據被包含在請求指定的回調函數中

  注意事項

   使用JSOPN有潛在的安全隱患,因為JSONP允許后端服務調用應用的JavaScript,使站點變得脆弱的同時,還可能暴露用戶隱私

  文章參考

  《AngularJS權威教程》

以上就是本文的全部內容,希望對大家有所幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍邱县| 永靖县| 佛坪县| 安图县| 北票市| 中超| 绥江县| 彭水| 灌南县| 沙河市| 咸宁市| 砚山县| 焦作市| 麻城市| 辽中县| 怀远县| 湘潭县| 巫山县| 广南县| 清丰县| 馆陶县| 枣庄市| 浑源县| 乐山市| 金湖县| 凤冈县| 米泉市| 若尔盖县| 金门县| 仁寿县| 通渭县| 白山市| 灌南县| 阿坝| 南丹县| 芒康县| 仁布县| 辉县市| 伊宁县| 伊吾县| 湘阴县|