Ajax+PHP實現跨域訪問的兩種方式
阿新 • • 發佈:2019-02-11
1.相容IE瀏覽器的方法,在Ajax請求的時候使用jsonp:
$("#search").click(function() { $.ajax({ type : "GET", url : "http://127.0.0.1/raid/jquery_learning/ajax_learning/php/index.php?number="+$("#keyword").val(), dataType : "jsonp", jsonp : "callback", success : function(data) { if (data.success) { $("#searchResult").html(data.msg); } else { $("#searchResult").html("出現錯誤"+data.msg); } }, error : function(jqXHR) { alert("發生錯誤"+jqXHR.status); } }) });
然後在PHP接收和返回的時候也帶上jsonp的資料:
function search() { $jsonp = $_GET["callback"]; if(!isset($_GET["number"]) || empty($_GET["number"])) { echo '{"success":false,"msg":"引數錯誤"}'; return ; } global $staff; $number = $_GET["number"]; $result = $jsonp.'({"success":false,"msg":"沒有找到員工"})'; foreach ($staff as $key => $value) { if($value["number"] == $number) { $result = $jsonp.'({"success":true,"msg":"找到員工'.$value["name"].'"})'; break; } } echo $result; }
2.只提供給支援HTML5的瀏覽器使用,只需要在PHP的頭部加上如下這兩句話即可:
//處理跨域
header("Access-Control-Allow-Origin:*"); //*號表示所有域名都可以訪問
header("Access-Control-Allow-Method:POST,GET");