從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屬性不存在跨域的問題。
舉個例子讓大家看得更清楚一點吧:
{
public partial class getDemo : System.Web.UI.Page
{
{
Response. Write("var responseVal='Dylan'");
}
}
}
這個方法又叫做是因為使用了<script>標籤而沒有用到xml和xmlHttprequest的緣故。這種方法似乎有點“另類”,哈哈。
過程服务器端js.txt 内の内容:
var Dylan= {name:"Dylan",email:Dylan@163.com}
ユーザは、そのような方法がより有効であると感じている。
怎么样、其实简単吧、我看過多人不如意正視ajax所存的技圯瓶、其实AJAX更该はAJAXではなくAjaxである、突出第一AはそのAJAX発行を想起するものであるは、特定の技術を使用するわけではなく、段階的に転送する方法です。
さらに、json データ形式の後に、さらに拡張された X の「jsonp」もあり、ajax のクロスフィールド通信を実現できます。 jQuery1.2 バージョン以降、jQuery は JSONP を再評価するためのローカル サポートを備えています。