精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Jsonp 方式跨域獲取 json 數據原理 - JavaScript - web - JavaEye論壇

一直沒時間玩js,看到douban網的開放api后,查了些文檔,了解了一下 jsonp 跨域請求方式.跟大家分享一下。

 

其實 jsonp 是個很簡單的一個東西。

主要是利用了 <script/> 標簽對 javascript 文檔的動態解析來實現。(其實也可以用eval函數)

 

來個超簡單的例子:

首先是準備客戶端的代碼,

 

Html代碼
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml" >  
  3. <head>  
  4.     <title>Test Jsonp</title>  
  5.     <script type="text/javascript">  
  6.             function jsonpCallback(result)  
  7.             {  
  8.             alert(result.msg);  
  9.             }  
  10.         </script>  
  11.     <script type="text/javascript" src="http://crossdomain.com/jsonServerResponse?jsonp=jsonpCallback"></script>  
  12. </head>  
  13. <body>  
  14. </body>  
  15. </html>   

 

其中 jsonCallback 是客戶端注冊的,獲取跨域服務器上的json數據后,回調的函數。

http://crossdomain.com/jsonServerResponse?jsonp=jsonpCallback

這個 url 是跨域服務器取 json 數據的接口,參數為回調函數的名字,返回的格式為

 

Js代碼
  1. jsonpCallback({msg:'this is json data'})  

 

Jsonp原理:

首先在客戶端注冊一個callback, 然后把callback的名字傳給服務器。

 

此時,服務器先生成 json 數據。 

然后以 javascript 語法的方式,生成一個function , function 名字就是傳遞上來的參數 jsonp.

 

最后將 json 數據直接以入參的方式,放置到 function 中,這樣就生成了一段 js 語法的文檔,返回給客戶端。

 

客戶端瀏覽器,解析script標簽,并執行返回的 javascript 文檔,此時數據作為參數,傳入到了客戶端預先定義好的 callback 函數里.(動態執行回調函數)


本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AJAX 跨域請求
AngularJS實現跨域請求
深入剖析jsonp跨域原理
java web跨域請求
說說JSON和JSONP,也許你會豁然開朗
關于jquery跨域請求方法
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 太原市| 商都县| 虹口区| 芜湖县| 伊宁市| 望谟县| 沿河| 马龙县| 无棣县| 吉木乃县| 吉首市| 连城县| 浑源县| 龙山县| 托克逊县| 永清县| 西盟| 仙游县| 福泉市| 股票| 乌拉特后旗| 旌德县| 武穴市| 南华县| 萝北县| 南投市| 缙云县| 正宁县| 屏边| 额敏县| 仙游县| 赫章县| 安泽县| 白河县| 会东县| 潜江市| 信阳市| 当涂县| 永兴县| 伽师县| 泰和县|