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

js實現(xiàn)跨域的方法實例詳解

 更新時間:2015年06月24日 11:48:41   作者:鏡中望月  
這篇文章主要介紹了js實現(xiàn)跨域的方法,實例分析了幾種常用的javascript實現(xiàn)跨域的技巧,需要的朋友可以參考下

本文實例講述了js實現(xiàn)跨域的方法。分享給大家供大家參考。具體分析如下:

由于同源策略的限制,XMLHttpRequest只允許請求當前源(包含域名、協(xié)議、端口)的資源。

json與jsonp的區(qū)別:

JSON是一種數(shù)據(jù)交換格式,而JSONP是一種依靠開發(fā)人員創(chuàng)造出的一種非官方跨域數(shù)據(jù)交互協(xié)議。

script標簽經常被用來加載不同域下的資源,可以繞過同源策略。(有src屬性的都可以獲取異域文件)。
如果請求的這個遠程數(shù)據(jù)本身就是一段可執(zhí)行的js,那么這些js會被執(zhí)行(相當于eval)。
 
方法一:

利用script標簽請求(<script src="http://....jsp?callback=回調函數(shù)名"></script>)
在使用script標簽請求前,先進行回調函數(shù)的申明調用,

<script>
function 回調函數(shù)名(data數(shù)據(jù)){ 。。。。 }
</script>
<script src="http://....jsp?callback=回調函數(shù)名"></script>

使用JSON來傳遞javascript對象是一種最簡單的方式了,這樣的跨域通訊方式稱為JSONP。

遠程服務器拼湊字符串:

回調函數(shù)名( {"name1":"data1","name2","data2"} )

這種以后臺拼湊json數(shù)據(jù),利用回調函數(shù)傳參的形式返回給客戶端
(可以直接調用相當于已經將獲取的字符串進行eval了處理)

例如:

function databack(data){ alert(data.name1) }
// 會輸出顯示"data1"

方法二:

jquery實現(xiàn)異域加載方法更為簡單(與ajax異步請求方式相同)

$.ajax({
  type : "get",
  dataType:"json",
  success : function(data){ alert(data.name1) };
})

或者簡寫形式

var url = "http://.....jsp?callback=?";
// 在jquery中此處的callback值可以為任意,
// 因為jquery進行處理后都是利用success回調函數(shù)進行數(shù)據(jù)的接受;
$.getJSON( url, function(data){ alert(data.name1) });

方法三:

ajax跨域之服務端代理

在同源的后臺設置一個代理程序(proxy.jsp...);
在服務器端與異域的服務器交互。

jquery前臺傳輸數(shù)據(jù):

例如:

$.get(
   'http://。。。.jsp', // 代理程序地址
   {
    name1 : "data1",
    name2 : "data2"
   },
   function(data){
   if(data == 1) alert('發(fā)送成功!');
   }
);

后臺數(shù)據(jù)的處理 :

String data1 = request.getParameter("name1");
........
// 此處的url為另一域下的地址并帶有參數(shù)
String url = "http://.....com/.../sss.jsp?" + "name1=" + data1+ "name2=" + data2;
// 跳轉到另一個域進行數(shù)據(jù)的處理并返回json格式的數(shù)據(jù)
request.getRequestDispatcher(url).forward(request,response);

方法四:

利用iframe標簽的src屬性,進行跨域的訪問,將獲取到的值存儲到當前的iframe中,然后再同一頁面進行獲取該iframe的body內的值。

<body>
  <div id="show"></div>
  <iframe id="frame" style="display: none;"></iframe>
</body>
<script>
$("#frame").attr("src", "路徑?time=" + new Date().getTime()).load(function(){
 // 獲取iframe標簽的值并進行獲取,顯示到頁面
 $("#show").append("[data: " + $($("#frame").get(0).contentDocument).find("body").text()+ " ]");
});
</script>

方法五:

HTML5中websocket可以進行跨域的訪問;

創(chuàng)建一個websocket對象:

復制代碼 代碼如下:
var ws = new WebSocket(url);

主要處理的事件類型有(onopen,onclose,onmessage,onerror);

例如:

ws.onopen = function(){
console.log("open");
// 向后臺發(fā)送數(shù)據(jù)
ws.send("open");
}

后臺可以是java,php,nodejs等,對數(shù)據(jù)處理用時間onmessage事件對返回的值進行前端處理。

ws.onmessage = function(eve){
console.log(eve.data);
}

希望本文所述對大家的javascript程序設計有所幫助。

相關文章

  • Javascript 遍歷對象中的子對象

    Javascript 遍歷對象中的子對象

    昨天同事問我一個問題:“有一個JSON對象,其中有若干個子對象,如何遍歷這個對象中的子對象?”
    2009-07-07
  • 刪除table表格行的實例講解

    刪除table表格行的實例講解

    下面小編就為大家?guī)硪黄獎h除table表格行的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • uniapp中vuex的應用使用步驟

    uniapp中vuex的應用使用步驟

    Vuex是一個專為Vue.js應用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化,下面這篇文章主要給大家介紹了關于uniapp中vuex的應用使用,需要的朋友可以參考下
    2022-08-08
  • 元素綁定click點擊事件方法

    元素綁定click點擊事件方法

    當點擊元素時,會發(fā)生 click 事件。當鼠標指針停留在元素上方,然后按下并松開鼠標左鍵時,就會發(fā)生一次 click。click() 方法觸發(fā) click 事件,或規(guī)定當發(fā)生 click 事件時運行的函數(shù)。
    2015-06-06
  • moment.js使用超詳細教程

    moment.js使用超詳細教程

    Moment.js是一個輕量級的JavaScript時間庫,它方便了日常開發(fā)中對時間的操作,提高了開發(fā)效率下,本文給大家介紹moment.js使用超詳細教程,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • JavaScript實現(xiàn)內容滾動與導航標簽互動關聯(lián)方案

    JavaScript實現(xiàn)內容滾動與導航標簽互動關聯(lián)方案

    這篇文章主要介紹了JavaScript實現(xiàn)內容滾動與導航標簽互動關聯(lián)方案,主要根據(jù)滾動左側內容,關聯(lián)激活右側導航節(jié)點展開相應介紹,需要的小伙伴可以參考一下
    2022-06-06
  • javascript canvas時鐘模擬器

    javascript canvas時鐘模擬器

    這篇文章主要為大家詳細介紹了javascript canvas時鐘模擬器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)

    JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)

    這篇文章主要介紹了JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞),需要的朋友可以參考下
    2023-05-05
  • Bootstrap柵格系統(tǒng)學習筆記

    Bootstrap柵格系統(tǒng)學習筆記

    這篇文章主要為大家詳細介紹了Bootstrap柵格系統(tǒng)學習筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 在表單提交前進行驗證的幾種方式整理

    在表單提交前進行驗證的幾種方式整理

    為了減輕后臺壓力,可以利用JavaScript在表單提交前對表單數(shù)據(jù)進行驗證,本文整理了常用的幾種方式,有需求的朋友可以參考下
    2013-07-07

最新評論

长治县| 循化| 定安县| 柳州市| 洪泽县| 娄底市| 浑源县| 利津县| 华安县| 舟曲县| 垫江县| 中山市| 黔西县| 松阳县| 灵石县| 恩施市| 珲春市| 通山县| 洮南市| 兴业县| 永兴县| 三门县| 鹤山市| 枣强县| 罗定市| 临颍县| 波密县| 石河子市| 眉山市| 高陵县| 郎溪县| 庆安县| 六盘水市| 鄂伦春自治旗| 会理县| 威信县| 建湖县| 平舆县| 彩票| 双辽市| 和硕县|