Ajax 中跨域問題的結決辦法

來源:互聯網
上載者:User
ajax伴隨的goole 的推動,越來越多的網站開始使用了,在開大ajax程式的時候會遇到很多的問題,主要有以下幾個方面:
  • 跨瀏覽器問題
  • 曆史後退狀態問題
  • 跨域問題

跨瀏覽器的問題因為現在有很多的開元的架構已經解決了,我們無需為此而煩惱。
曆史後退狀態問題我們可以使用一個數組來儲存曆史紀錄,然後把這些資料村到曆史對象中去,中的也可以解決,並且還有很多的開元架構給與支援,這樣問題就不是很大。
跨域的問題就不是很好的解決,但是還是有辦法的,一下給出一些基本的解決方案供大家選擇:

  1. 使用代理,你可以使用web端的程式編寫代理程式,把所有的ajax請求的資料進行轉寄,web程式可以使php,jsp,asp等所有的程式設計語言。相信大家對這種方式一定很熟悉,這裡就不詳細的介紹了。
  2. 使用iframe的方式來定勢的重新整理葉面,這種方式只是取得資料來顯示,並不能真正的和求得的資料進行互動,轉化成本頁面的動態資料,不是很可取,應用也不是很多,我也忽略不去討論了。
  3. 使用apache的代理功能,主要就是apache的方向代理,或者是url從定向,你也可以把其他的網站直接的掛在自己的網站上,這樣的方式可能會友邦權的問題,多的九部介紹了,有興趣的本有可以自己實踐以下。
  4. 使用《script》標籤的方式,這樣的話就可以保正使用真正的ajax來跨域,並且可以使用返回來的資料,發誓很簡單,在我們的背景程式處理後的到的結果都直接的用javascript 的方式返回,在我們的html中直接的使用返回資料的變數就可以了一個簡單的例子

我們使用的html葉面 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 2  <HTML>
 3   <HEAD>
 4    <TITLE> New Document </TITLE>
 5    <META NAME="Generator" CONTENT="EditPlus">
 6    <META NAME="Author" CONTENT="">
 7    <META NAME="Keywords" CONTENT="">
 8    <META NAME="Description" CONTENT="">
 9   </HEAD>
10 <SCRIPT LANGUAGE="JavaScript" src="" id="get">
11 </SCRIPT>
12 <SCRIPT LANGUAGE="JavaScript">
13 <!--
14 function get(url)
15     {
16         var obj = document.getElementById("get");
17         obj.src = url;
18         (obj.readStatus == 200)
19         {
20             alert(xml);
21         }
22     }
23     function text()
24     {
25 get (get.php);
26     }
27 //-->
28 </SCRIPT>
29  <BODY>
30   <INPUT TYPE="button" value="CLICK ME" onclick="test()">
31  </BODY>
32 </HTML>

背景程式get.php
eche 'var xml ="asdf";';
當你點擊按鈕的時候就會去伺服器那去你需要的js,但加在完成後就可以自己的使用變數xml了,運行代碼後你會得到一個對話方塊顯示asdf;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.