欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AngularJS中的JSONP實例解析

 更新時間:2016年12月01日 08:57:32   作者:BestMe丶  
本文對AngularJS中的JSONP實例解析。需要的朋友可以參考下

概念

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

(Json格式示意圖)

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

具體的實現(xiàn)方法

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

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

$http.jsonp("...})

  當姑娘接到小鴿子帶來的信之后呢,也要把內(nèi)容寫在小鴿子身上的信,來回信(通過callback參數(shù),把響應(yīng)內(nèi)容包裝成一個JavaScript參數(shù),并由該請求對應(yīng)的回調(diào)函數(shù)來進行調(diào)用)

  包裝數(shù)據(jù)的方法

res.send(【callback函數(shù)】+ '('+ JSON.stringify(result) + ')');

 其他細節(jié)

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

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

$http.jsonp("變成

<script src=">

   因此當我們自己開發(fā)JSONP的后端服務(wù)時,要確保響應(yīng)數(shù)據(jù)被包含在請求指定的回調(diào)函數(shù)中

  注意事項

   使用JSOPN有潛在的安全隱患,因為JSONP允許后端服務(wù)調(diào)用應(yīng)用的JavaScript,使站點變得脆弱的同時,還可能暴露用戶隱私

  文章參考

  《AngularJS權(quán)威教程》

以上就是本文的全部內(nèi)容,希望對大家有所幫助,同時也希望多多支持腳本之家!

相關(guān)文章

最新評論