//第一種方法使用jsonp的方式
<script type="text/javascript" src="http://www.youxiaju.com/js/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(function(){ $.ajax( { type:'get', url : 'http://www.youxiaju.com/validate.php?loginuser=lee&loginpass=123456', dataType : 'jsonp', jsonp:"jsoncallback", success : function(data) { alert("用戶名:"+ data.user +" 密碼:"+ data.pass); }, error : function() { alert('fail'); } } ); }) </script>
<?php header('Content-Type:text/html;Charset=utf-8'); $arr = array( "user" => $_GET['loginuser'], "pass" => $_GET['loginpass'], "name" => 'response' ); echo $_GET['jsoncallback'] . "(".json_encode($arr).")";
第二種方式增加headr頭
假設我們頁面或者應用已在 http://www.test1.com 上了,而我們打算從 http://www.test2.com 請求提取數據。一般情況下,如果我們直接使用 AJAX 來請求將會失敗,瀏覽器也會返回“源不匹配”的錯誤,"
跨域"也就以此由來。
利用 CORS,http://www.test2.com 只需添加一個標頭,就可以允許來自 http://www.test1.com 的請求,下圖是我在PHP中的 hander() 設置,
“*”號表示允許任何域向我們的服務端提交請求:

也可以設置指定的域名,如域名 http://www.test2.com ,那么就允許來自這個域名的請求:

當前我設置的header為“*”,任意一個請求過來之后服務端我們都可以進行處理&響應,那么在調試工具中可以看到其頭信息設置,其中見紅框中有一項信息是“
Access-Control-Allow-Origin:* ”,表示我們已經啟用CORS,如下圖。
PS:由於demo都在我廠的兩台測試機間完成,外網也不能訪問,所以在這就不提供demo了,見諒


簡單的一個header設置,一個支持跨域&POST請求的server就完成了:)
當然,如果沒有開啟CORS必定失敗的啦,如下圖:
