自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AJAX跨域問題的解決辦法

開發(fā) 前端
從AJAX誕生那天起,XMLHttprequest對象在firefox下不能跨域請求的問題就一直存在,等待瀏覽器們?nèi)ソ鉀Q這個問題顯然不太現(xiàn)實(shí),聰明的Web開發(fā)人員們早就想了一系列的方法來解決這個問題,下面列舉兩個比較不錯的方法:

最近公司內(nèi)部的architecture組正在熱烈討論AJAX,***難免會談到如何跨域這個問題,因?yàn)閺腁JAX誕生那天起,XMLHttprequest對象在firefox下不能跨域請求的問題就一直存在,等待瀏覽器們?nèi)ソ鉀Q這個問題顯然不太現(xiàn)實(shí),聰明的Web開發(fā)人員們早就想了一系列的方法來解決這個問題,下面列舉兩個比較不錯的方法:

1. 使用中間層過渡的方式:

中間過渡,很明顯,就是在AJAX與不同域的服務(wù)器進(jìn)行通訊的中間加一層過渡,這一層過渡可以是PHP、JSP、c++等任何具備網(wǎng)絡(luò)通訊功能的語言,由中間層向不同域的服務(wù)器進(jìn)行讀取數(shù)據(jù)的操作。拿PHP做一個例子,如果需要對不同域的某一個php進(jìn)行通訊,現(xiàn)在客戶端的xmlhttprequest先query本域的一個PHP,然后由本域的這個PHP去和不同域的PHP進(jìn)行通訊,然后由本域的PHP輸出response;

2. 使用<script>標(biāo)簽

這個方法是利用<script>標(biāo)簽中的src來query一個PHP獲得response,因?yàn)椋約cript>標(biāo)簽的src屬性不存在跨域的問題。

舉個例子來讓大家看得更清楚一點(diǎn)吧:

<script LANGUAGE="Javascript" src="" id="get">
</script>
<script LANGUAGE="Javascript">
<!--
function get(url)
    {
        var obj = document.getElementById("get");
        obj.src = url;
        (obj.readStatus == 200)
        {
            alert(param);
        }
    }
function query()
    {
get(get.php);
    }
//-->
</script>
<BODY>
<INPUT TYPE="button" value="CLICK ME" onclick="query()">
</BODY>
</HTML>

其中g(shù)et.php的代碼是:

<?php
echo "var param = 'www.achome.cn'";
?>

***的運(yùn)行結(jié)果是,當(dāng)你點(diǎn)擊那個button,它會出現(xiàn)一個內(nèi)容為”www.achome.cn”的對話框。

這個方法又叫做ajaj或者ajax without xmlHttprequest,把x換成了j,是因?yàn)槭褂昧耍約cript>標(biāo)簽而沒有用到xml和xmlHttprequest的緣故。

怎么樣,很簡單吧,我看到過很多人不愿意去正視ajax所存在的技術(shù)瓶頸,其實(shí)AJAX更應(yīng)該是Ajax而不是AJAX,突出***個A是想強(qiáng)調(diào)其實(shí)AJAX發(fā)揚(yáng)的是一種異步傳輸?shù)姆椒?,而不是具體到底使用了哪種技術(shù)。

【編輯推薦】

  1. 基于Dojo實(shí)現(xiàn)MVC模式下的Ajax應(yīng)用
  2. 使用AJAX擴(kuò)展器自定義控件
  3. 淺談Ajax在ASP.Net中的使用
責(zé)任編輯:楊鵬飛 來源: achome博客
相關(guān)推薦

2011-02-22 17:14:20

2012-03-27 15:23:15

JSONPAJAX

2017-08-20 12:49:59

瀏覽器跨域服務(wù)器

2012-07-31 16:06:28

Linux內(nèi)核編譯

2021-06-06 13:05:15

前端跨域CORS

2024-10-29 16:41:24

SpringBoot跨域Java

2012-12-12 15:19:32

云安全

2011-10-28 10:56:24

jQTouchjQueryiPhone

2015-10-21 14:27:18

ORACLE 超長字符解決辦法

2010-06-10 15:21:30

openSUSE聲音

2022-03-11 10:01:47

開發(fā)跨域技術(shù)

2010-05-17 17:45:54

MySQL亂碼問題

2017-12-19 17:54:31

前端ajax跨域cors

2009-06-03 16:41:21

Eclipse亂碼Eclipse

2011-05-12 13:34:57

SQL Server

2011-03-04 13:07:47

Filezilla

2010-03-04 16:49:44

2009-06-04 10:44:18

struts2 亂碼解決辦法

2010-08-17 11:35:46

DIV CSS

2024-12-02 14:30:20

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號