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

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

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

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

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

json與jsonp的區(qū)別:

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

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

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

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

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

遠程服務(wù)器拼湊字符串:

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

這種以后臺拼湊json數(shù)據(jù),利用回調(diào)函數(shù)傳參的形式返回給客戶端
(可以直接調(diào)用相當(dāng)于已經(jīng)將獲取的字符串進行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回調(diào)函數(shù)進行數(shù)據(jù)的接受;
$.getJSON( url, function(data){ alert(data.name1) });

方法三:

ajax跨域之服務(wù)端代理

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

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;
// 跳轉(zhuǎn)到另一個域進行數(shù)據(jù)的處理并返回json格式的數(shù)據(jù)
request.getRequestDispatcher(url).forward(request,response);

方法四:

利用iframe標(biāo)簽的src屬性,進行跨域的訪問,將獲取到的值存儲到當(dāng)前的iframe中,然后再同一頁面進行獲取該iframe的body內(nèi)的值。

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

方法五:

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

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

復(fù)制代碼 代碼如下:
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程序設(shè)計有所幫助。

相關(guān)文章

  • 將html頁面保存成圖片,圖片寫入pdf的實現(xiàn)方法(推薦)

    將html頁面保存成圖片,圖片寫入pdf的實現(xiàn)方法(推薦)

    下面小編就為大家?guī)硪黄獙tml頁面保存成圖片,圖片寫入pdf的實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • JS使用 cryptojs加密解密(對稱加密庫)的問題

    JS使用 cryptojs加密解密(對稱加密庫)的問題

    js 加密解密可以使用 crypto-js,這是一個對稱加密的庫, 可以使用 AES DES 但沒有 rsa 等非對稱加密的方法,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-11-11
  • Webpack中使用環(huán)境變量的各種正確姿勢

    Webpack中使用環(huán)境變量的各種正確姿勢

    我們在開發(fā)項目中都會遇到這種場景,區(qū)分開發(fā)環(huán)境、生產(chǎn)環(huán)境、測試環(huán)境,不同場景請求不同的接口Api,這時候項目中配置的「環(huán)境變量」就登場啦,這篇文章主要給大家介紹了關(guān)于Webpack中使用環(huán)境變量的各種正確姿勢,需要的朋友可以參考下
    2021-09-09
  • JavaScript數(shù)據(jù)結(jié)構(gòu)yocto queue隊列鏈表代碼分析

    JavaScript數(shù)據(jù)結(jié)構(gòu)yocto queue隊列鏈表代碼分析

    這篇文章主要為大家介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)yocto queue隊列鏈表代碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • JavaScript中offsetWidth的bug及解決方法

    JavaScript中offsetWidth的bug及解決方法

    這篇文章主要為大家詳細介紹了JavaScript中offsetWidth的bug及解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript實現(xiàn)簡單獲取當(dāng)前網(wǎng)頁網(wǎng)址的方法

    JavaScript實現(xiàn)簡單獲取當(dāng)前網(wǎng)頁網(wǎng)址的方法

    這篇文章主要介紹了JavaScript實現(xiàn)簡單獲取當(dāng)前網(wǎng)頁網(wǎng)址的方法,通過location對象的href方法來獲取網(wǎng)址,非常簡單實用,需要的朋友可以參考下
    2015-11-11
  • js輪盤抽獎實例分析

    js輪盤抽獎實例分析

    這篇文章主要為大家詳細介紹了js輪盤抽獎實例,分析js輪盤抽獎實現(xiàn)原理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • JavaScript逆向調(diào)試技巧總結(jié)分享

    JavaScript逆向調(diào)試技巧總結(jié)分享

    當(dāng)我們抓取網(wǎng)頁端數(shù)據(jù)時,經(jīng)常被加密參數(shù)、加密數(shù)據(jù)所困擾,如何快速定位這些加解密函數(shù),尤為重要,下面這篇文章主要給大家介紹了關(guān)于JavaScript逆向調(diào)試技巧的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • JavaScript實現(xiàn)JSON合并操作示例【遞歸深度合并】

    JavaScript實現(xiàn)JSON合并操作示例【遞歸深度合并】

    這篇文章主要介紹了JavaScript實現(xiàn)JSON合并操作,結(jié)合實例形式分析了javascript基于遞歸深度實現(xiàn)json合并操作相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-09-09
  • JSONP原理及簡單實現(xiàn)

    JSONP原理及簡單實現(xiàn)

    這篇文章主要介紹了JSONP原理及簡單實現(xiàn)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論