ajax+php跨域请求数据库,基于jQuery的ajax跨域请求,PHP作为服务器端代码
ajax實現跨域請求有兩種方式:
方法一:jsonp的方式
jsonp方式的關鍵點在客戶請求以jsonp作為數據類型,服務器端接收jsonp的回調函數,并通過回調函數進行數據的傳輸。具體代碼如下:
客戶端:
$.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");
}
})
服務器端;
// 使用jsonp實現跨域傳輸的方式,重點在于通過callback回調函數進行傳遞數據
$data=array("name"=>"張三","sex"=>"男");
$callback=$_GET['callback'];
echo $callback."(".json_encode($data).")";
方法二:使用CORS方式
之所以產生跨域問題是應為瀏覽器遵從同源策略,何為同源?所謂同源是指域名、協議、端口相同。只有在同源策略下才能夠進行數據的交互。而跨域顯然是不滿足同源策略要求。所以為此提供了CORS方式,為要請求的目的服務器段加上header請求頭便可實現客戶端跨域請求。代碼如下:
服務器端(PHP):
// 使用CORS進行處理跨域傳輸
echo "hello boy,我是通過CORS方式傳輸的";
// 允許 http://localhost:8080 發起的跨域請求
header("Access-Control-Allow-Origin:http://localhost:8080");
客戶端:
$("#textShow").load("http://192.168.20.88:80/class/index.php");
jsonp的方式只支持get方式數據交互,而CORS方式可令客戶端以同源策略下的各種方式請求數據。
如果把后面的網址改為*的話,就允許全部的網址跨域訪問自己的網站了
header("Access-Control-Allow-Origin:*");
總結
以上是生活随笔為你收集整理的ajax+php跨域请求数据库,基于jQuery的ajax跨域请求,PHP作为服务器端代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 糍粑的家常做法?
- 下一篇: 1人份汤圆用多少糯米粉?