基於jQuery的ajax跨域請求,PHP作為服務器端代碼


ajax實現跨域請求有兩種方式: 方法一:jsonp的方式 jsonp方式的關鍵點在客戶請求以jsonp作為數據類型,服務器端接收jsonp的回調函數,並通過回調函數進行數據的傳輸。具體代碼如下: 客戶端: [javascript] view plain copy $.ajax({ type:"GET", url:"http://192.168.20.88:80/class/index.php", dataType:"jsonp", jsonp:"callback", jsonpCallback:"success_jsonpCallback", success:function(json){ $("#textShow").html("姓名:"+json.name+" 性別:"+json.sex); }, error:function(){ alert("fail"); } }) 服務器端; [php] view plain copy // 使用jsonp實現跨域傳輸的方式,重點在於通過callback回調函數進行傳遞數據 $data=array("name"=>"張三","sex"=>"男"); $callback=$_GET['callback']; echo $callback."(".json_encode($data).")"; 方法二:使用CORS方式 之所以產生跨域問題是應為瀏覽器遵從同源策略,何為同源?所謂同源是指域名、協議、端口相同。只有在同源策略下才能夠進行數據的交互。而跨域顯然是不滿足同源策略要求。所以為此提供了CORS方式,為要請求的目的服務器段加上header請求頭便可實現客戶端跨域請求。代碼如下: 服務器端(PHP): [php] view plain copy // 使用CORS進行處理跨域傳輸 echo "hello boy,我是通過CORS方式傳輸的"; // 允許 http://localhost:8080 發起的跨域請求 header("Access-Control-Allow-Origin:http://localhost:8080"); 客戶端: [html] view plain copy $("#textShow").load("http://192.168.20.88:80/class/index.php"); jsonp的方式只支持get方式數據交互,而CORS方式可令客戶端以同源策略下的各種方式請求數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM