首頁  >  文章  >  web前端  >  jquery跨域請求範例分享(jquery發送ajax請求)_jquery

jquery跨域請求範例分享(jquery發送ajax請求)_jquery

WBOY
WBOY原創
2016-05-16 16:54:341196瀏覽

jQuery中常用getJSON來呼叫並取得遠端的JSON字串,將其轉換為JSON對象,如果成功,則執行回呼函數。原型如下:

jQuery.getJSON( url, [data], [callback] ) 跨域載入JSON資料。

url: 發送請求的位址
data : (可選) 待發送key/value參數
callback: (可選) 載入成功時的回呼函數
主要用於客戶端取得伺服器JSON資料。簡單範例:

伺服器腳本,回傳JSON資料:

複製程式碼 程式碼如下:

// $.getJSON.php


// $.getJSON.php
$arr =array("name"=>"zhangsan", "age"=>20);
$jarr=json_encode($arr); echo $jarr;

注意兩點:第一:在傳回客戶端之前,先用PHP函數json_encode將要傳回的資料進行編碼。第二:返回客戶端用的是echo,而不是return。

以下是核心的客戶端程式碼: 複製程式碼

程式碼如下:



由於在PHP中是用JSON編碼傳回值,所以這裡必須用getJSON去呼叫PHP文件,以便取得資料。同時可以注意到,經由getJSON得到的資料已經變成了一個物件數組,可以用response.name,response.age很直觀的獲取回傳值。

jquery提供了$.getJSON的方法,讓我們可以實現跨域ajax請求,但jqueryAPI上的內容實在太少,如何用$.getJSON,請求網站應該返回怎樣的資料庫才能讓$.getJSON取得到,下面我就用一個實際例子來說明下。

後端是用php的,以下程式碼主要實現的一個功能就是提供一個預約登記的接口,需要傳入的資料分別有:使用者姓名、聯絡電話和地址:

複製代碼 代碼如下:
/*預約登記執行介面/


/*預約登記執行介面/case🎜>case "yuyue_interface":
 $name = trim($_GET['name']);
 $phone = trim($_GET['phone']);
 $addr = trim($_GET[' addr']);
 $dt = date("Y-m-d H:i:s");
 $cb = $_GET['callback'];
 if($name == "" || $name == NULL){
  echo $cb."({code:".json_encode(1)."})";
 }elseif($phone == "" || $phone == NULL ){
  echo $cb."({code:".json_encode(2)."})";
 }elseif($addr == "" || $addr == NULL){
echo $cb."({code:".json_encode(3)."})";
 }else{
  $db->e​​xecute("insert into tb_yuyue (realname,telphone,danwei,dt,ischeck ) values ('$name','$phone','$addr','$dt',0)");
  echo $cb."({code:".json_encode(0)."}) ";
 }
 exit;
break;

接著就是前端的處理了:

程式碼如下:


$(document).ready(>

$(document).ready(function(){ //以下3個為預約登記所需的參數
 var name = "name";  //varchar類型,長度最多為8位元(4個漢字)
 var phone = "phone"; // varchar類型,長度為11位元
 var addr = "addr";  //varchar類型,長度最多為500位元(250個漢字)
 $.getJSON("http://請求網址/data. php?ac=yuyue_interface&name=" name "&phone=" phone "&addr=" addr "&callback=?", function(data){
  if(data.code==1){
   //自訂程式碼
   alert("姓名不能為空白");
  }else if(data.code==2){
   //自訂程式碼
   alert("手機不能為空白");
  }else if(data.code==3){
   //自訂程式碼
   alert("所在單位不能為空");
  }else{

   alert("預約成功");
  }
 });
});

要注意的是,在後端php程式碼裡,必須把傳遞進來的" &callback=? "也輸出來,如:

複製程式碼 代碼如下:

$cb = $_GET['callback']; 🎜>echo $cb."({code:".json_encode(4)."})";

以上就是一個簡單的$.getJSON試驗,透過這個試驗,我們可以學到如何用$.getJSON,也能學到如何做一個介面讓別人跨域請求。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn