最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用JavaScript 實現(xiàn)各種跨域的方法

 更新時間:2013年05月08日 17:59:18   作者:  
本篇文章是對在JavaScript中實現(xiàn)各種跨域方法的介紹。需要的朋友參考下

一、一些概念

①傳統(tǒng)Ajax:交互的數(shù)據(jù)格式——自定義字符串或XML描述;

    跨域——通過服務(wù)器端代理解決。

②如今最優(yōu)方案:使用JSON格式來傳輸數(shù)據(jù),使用JSONP來跨域。

③JSON:一種數(shù)據(jù)交換格式?;诩兾谋?、被原生JS支持。

      格式:兩種數(shù)據(jù)類型描述符:大括號{ }、方括號[ ]。分隔符逗號、映射符冒號、定義符雙引好。

④JSONP:一種跨域數(shù)據(jù)交互協(xié)議,非官方。

  1、Web頁面調(diào)用js文件,可跨域。擴(kuò)展:但凡有src屬性的標(biāo)簽都具有跨域能力。

  2、跨域服務(wù)器 動態(tài)生成數(shù)據(jù) 并存入js文件(通常json后綴),供客戶端 調(diào)用。

  3、為了便于客戶端使用數(shù)據(jù),形成一個非正式傳輸協(xié)議,稱為JSONP。該協(xié)議重點是允許用戶傳遞一個callback參數(shù)給服務(wù)器,然后服務(wù)器返回數(shù)據(jù)時 將此callback參數(shù)作為函數(shù)名包裹住JSON數(shù)據(jù),使得客戶端可以隨意定制自己的函數(shù)來自動處理返回數(shù)據(jù)。


二、JSONP實現(xiàn)

實例1——客戶端單方面接收:

①客戶端——在客戶端設(shè)置創(chuàng)建一個函數(shù)對象,名稱可為callFunc,用于接收服務(wù)器的js數(shù)據(jù)和對其進(jìn)行處理。
  js數(shù)據(jù)中的核心是:調(diào)用callFunc函數(shù)的同時附帶著參數(shù),此參數(shù)即data對象的值。

復(fù)制代碼 代碼如下:

<script type="text/javascript">
    var callFunc = function(data){
        alert('遠(yuǎn)程js文件傳來的數(shù)據(jù):' + data.result);//data為服務(wù)器端的JSON數(shù)據(jù)對象。
    };
</script>
<script type="text/javascript" src="http://其他域的js文件.com/remote.js"></script>

②服務(wù)器端——直接調(diào)用客戶端js中的函數(shù),并傳入數(shù)據(jù)。
復(fù)制代碼 代碼如下:

callFunc({"result":"value1"});

實例2——客戶端向服務(wù)器傳送 指定函數(shù)名,服務(wù)器端接收該函數(shù)名 并調(diào)用對應(yīng)函數(shù) 將數(shù)據(jù)以參數(shù)形式傳入。
復(fù)制代碼 代碼如下:

<script type="text/javascript">
    // 得到航班信息查詢結(jié)果后的回調(diào)函數(shù)
    var flightHandler = function(data){
        alert('你查詢的航班結(jié)果是:票價 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 張。');
    };
    // 動態(tài)添加鏈接服務(wù)器js文件的script。
  // 在url地址中傳遞了一個code參數(shù)匹配JSON數(shù)據(jù)中的某個key,callback參數(shù)則告訴服務(wù)器:本地回調(diào)函數(shù)名為callFuncName。
    var url = "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=callFuncName";
    var script = document.createElement('script');
    script.setAttribute('src', url);
    // 將script元素在網(wǎng)頁加載時插入head頭部
    document.getElementsByTagName('head')[0].appendChild(script);
</script>

總結(jié):實現(xiàn)的代碼并不復(fù)雜,但在實現(xiàn)Ajax跨域、frameset/iframe跨域等卻是效率頗高的。

相關(guān)文章

  • Mobile Web開發(fā)基礎(chǔ)之四--處理手機(jī)設(shè)備的橫豎屏問題

    Mobile Web開發(fā)基礎(chǔ)之四--處理手機(jī)設(shè)備的橫豎屏問題

    這篇文章主要介紹了Mobile Web開發(fā)基礎(chǔ)之-—處理手機(jī)設(shè)備的橫豎屏,window.orientation屬性與onorientationchange事件以及media query方式是開發(fā)過程中需要注意到的兩種解決方式,需要的朋友可以參考下
    2017-08-08
  • ES6基礎(chǔ)語法之字符串?dāng)U展

    ES6基礎(chǔ)語法之字符串?dāng)U展

    這篇文章介紹了ES6基礎(chǔ)語法之字符串?dāng)U展,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 與Math.pow 相反的函數(shù)使用介紹

    與Math.pow 相反的函數(shù)使用介紹

    Math.pow函數(shù)想必大家都知道吧,本例介紹的是與其相反的函數(shù)
    2014-08-08
  • DOM基礎(chǔ)教程之使用DOM控制表格

    DOM基礎(chǔ)教程之使用DOM控制表格

    這篇文章主要介紹了DOM基礎(chǔ)教程之使用DOM控制表格的相關(guān)資料,需要的朋友可以參考下
    2015-01-01
  • JavaScript高級程序設(shè)計(第3版)學(xué)習(xí)筆記8 js函數(shù)(中)

    JavaScript高級程序設(shè)計(第3版)學(xué)習(xí)筆記8 js函數(shù)(中)

    接著看函數(shù)——這個具有魔幻色彩的對象。在上篇文章中說函數(shù)內(nèi)部屬性時,還遺留了一個this內(nèi)部屬性沒有解釋,不過在說this之前,我想先說一說執(zhí)行環(huán)境和作用域的概念
    2012-10-10
  • 深入理解 JS 垃圾回收

    深入理解 JS 垃圾回收

    JS的垃圾回收機(jī)制是為了以防內(nèi)存泄漏,內(nèi)存泄漏的含義就是當(dāng)已經(jīng)不需要某塊內(nèi)存時這塊內(nèi)存還存在著,垃圾回收機(jī)制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內(nèi)存。下面我們來一起深入學(xué)習(xí)一下吧
    2019-06-06
  • javaScript獲取對象中非空的屬性實現(xiàn)方法詳解

    javaScript獲取對象中非空的屬性實現(xiàn)方法詳解

    這篇文章主要為大家介紹了javaScript獲取對象中非空的屬性實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JavaScript的21條基本知識點

    JavaScript的21條基本知識點

    這篇文章主要介紹了JavaScript的21條基本知識點的相關(guān)資料,需要的朋友可以參考下
    2014-03-03
  • javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識

    javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識

    本文是學(xué)習(xí)筆記系列的第一篇,跟以前一樣,介紹些基礎(chǔ)知識,包括js基本概念、 JScript 的變量、js的數(shù)據(jù)類型、3.JScript 的運算符、js流程控制、js函數(shù)。有需要的朋友可以參考下
    2014-09-09
  • 簡介JavaScript中用于處理正切的Math.tan()方法

    簡介JavaScript中用于處理正切的Math.tan()方法

    這篇文章主要介紹了簡介JavaScript中用于處理正切的Math.tan()方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06

最新評論

永安市| 永新县| 平昌县| 绩溪县| 土默特左旗| 红原县| 常州市| 织金县| 开化县| 甘谷县| 西安市| 五常市| 黄冈市| 同江市| 嘉禾县| 永安市| 汕头市| 霍邱县| 孝感市| 绍兴市| 河源市| 新河县| 都江堰市| 香河县| 铁力市| 永州市| 罗定市| 威信县| 汉沽区| 巍山| 定南县| 灵川县| 菏泽市| 亚东县| 新源县| 瑞安市| 怀远县| 临汾市| 通许县| 扶余县| 芷江|