首頁  >  文章  >  web前端  >  完美解決AJAX跨域問題_javascript技巧

完美解決AJAX跨域問題_javascript技巧

WBOY
WBOY原創
2016-05-16 17:17:58997瀏覽

從AJAX誕生那天起,XMLHttprequest物件無法跨域請求的問題就一直存在。這似乎是一個很經典的問題了。是由於javascript的同源策略(這裡不作深入探討)所導致。

解決的方法,大概有以下幾種:

1. 使用中間層過渡的方式(可以理解為「代理」):

中間過渡,很明顯,就是在AJAX與不同網域的伺服器進行通訊的中間加一層過渡,這一層過渡可以是PHP、JSP、c 等任何具備網路通訊功能的語言,由中間層向不同網域的伺服器進行讀取資料的操作。拿asp.net做一個例子,如果需要對不同域的某一個asp.net進行通訊,現在客戶端的xmlhttprequest先query本域的一個asp.net ,然後由本域的這個asp.net去和不同域的asp .net進行通訊,然後由本域的asp.net響應輸出(response);想法大概就是這樣的,相信讀者已經很清楚的理解了。

2. 使用<script>標籤

這個方法是利用<script>標籤中的src來query一個aspx來獲得response,因為<script>標籤的src屬性不存在跨域的問題。

舉個例子讓大家看得更清楚一點吧:

複製程式碼 程式碼如下:


代碼如下:





    Ajax跨域問題
   
   






getDemo. aspx後台程式碼:
複製程式碼 程式碼如下:

using System;using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LearnJS

{
    public partial class getDemo : System.Web.UI.Page
    {
      {
            Response. Write("var responseVal='Dylan'");
        }
    }
}


這個方法又叫做是因為使用了<script>標籤而沒有用到xml和xmlHttprequest的緣故。這種方法似乎有點“另類”,哈哈。


那現在我們就來看看,有了jQuery之後,如何來解決ajax的跨域問題:


複製程式碼程式碼如下:



JQuery学习








過程服务器端js.txt 内の内容:
var Dylan= {name:"Dylan",email:Dylan@163.com}

ユーザは、そのような方法がより有効であると感じている。

怎么样、其实简単吧、我看過多人不如意正視ajax所存的技圯瓶、其实AJAX更该はAJAXではなくAjaxである、突出第一AはそのAJAX発行を想起するものである

は、特定の技術を使用するわけではなく、段階的に転送する方法です。

さらに、json データ形式の後に、さらに拡張された X の「jsonp」もあり、ajax のクロスフィールド通信を実現できます。 jQuery1.2 バージョン以降、jQuery は JSONP を再評価するためのローカル サポートを備えています。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn