這篇文章帶給大家的內容是關於AJAX跨域的詳細介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
AJAX 的跨域問題,常用的解決方法有兩種,簡單記錄下,詳細內容查看參考資料。以下範例自建兩個網域測試,www.test.com、www.example.com。
同源策略
同源策略限制從一個來源載入的文件或腳本如何與來自另一個來源的資源互動。這是一個用於隔離潛在惡意檔案的關鍵的安全機制。兩個頁面,如果網域、協定、埠都相同,也就是同源,其間的互動不存在問題。同源策略是很重要的安全機制,但有些時候需要突破這個機制,這需要跨域。
JSONP
JSONP 是很常用的方法,它是利用 標籤沒有跨域限制的原理實作。以下是在www.test.com 中使用JQuery 範例
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'get', dataType:'jsonp', jsonp: "callback", success:function(data) { console.log(data) } })
以下是www.example.com 的PHP 處理
<?php $callback = $_GET['callback']; $name = $_GET['name']; // 处理数据 $data = md5($name); echo $callback . '(' . json_encode($data) . ')';
#CORS
CORS (Cross-origin resource sharing),跨網域資源共享標準允許Web 應用伺服器進行跨網域存取控制。相對於 JSONP 只支援 GET ,CORS 支援更多的 HTTP 請求,同時更簡單、更安全。不過 CORS 可能會有相容問題。
以下是在 www.test.com 中發送 AJAX 請求
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'post', dataType:'json', success:function(data) { console.log(data) } });
www.example.com 的 PHP 處理
<?php header("Access-Control-Allow-Origin: http://www.test.com"); $name = $_POST['name']; // 处理数据 $data = md5($name); echo json_encode($data);
以上是AJAX跨域的詳細介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!