解決ajax跨域問題的多種方法

//第一種方法使用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頭javascript

 假設咱們頁面或者應用已在 http://www.test1.com 上了,而咱們打算從 http://www.test2.com 請求提取數據。通常狀況下,若是咱們直接使用 AJAX 來請求將會失敗,瀏覽器也會返回「源不匹配」的錯誤," 跨域"也就以此由來。
  利用 CORS,http://www.test2.com 只需添加一個標頭,就能夠容許來自 http://www.test1.com 的請求,下圖是我在PHP中的 hander() 設置, 「*」號表示容許任何域向咱們的服務端提交請求
     

  也能夠設置指定的域名,如域名 http://www.test2.com ,那麼就容許來自這個域名的請求php

     
     
  當前我設置的header爲「*」,任意一個請求過來以後服務端咱們均可以進行處理&響應,那麼在調試工具中能夠看到其頭信息設置,其中見紅框中有一項信息是「 Access-Control-Allow-Origin:* 」,表示咱們已經啓用CORS,以下圖。
  PS:因爲demo都在我廠的兩臺測試機間完成,外網也不能訪問,因此在這就不提供demo了,見諒
     
   簡單的一個header設置,一個支持跨域&POST請求的server就完成了:)
 
  固然,若是沒有開啓CORS一定失敗的啦,以下圖:
  
相關文章
相關標籤/搜索