jqueryドメイン横断要求例共有(jquery送信ajax要求)

3457 ワード

jQueryでは、getJSONを呼び出してリモートのJSON文字列を取得し、JSONオブジェクトに変換します。成功すれば、コールバック関数を実行します。原型は以下の通りです
jQuery.getJSON(url,[data],[calback])はドメインをまたいでJSONデータをロードします。
url:送信要求のアドレスdata:(オプション)送信待ちkey/valueパラメータcalback:(オプション)ロード成功時のコールバック関数は、主にクライアントがサーバJSONデータを取得するために使用されます。簡単な例:
サーバスクリプトは、JSONデータに戻ります。

// $.getJSON.php
$arr=array("name"=>"zhangsan", "age"=>20);
$jarr=json_encode($arr);
echo $jarr;
注意点:まず、クライアントに戻る前にPHP関数Json_を使います。エンコードは戻りたいデータを符号化します。第二に、クライアントに戻るのはechoであり、リターンではない。
以下はコアクライアントコードです。

<script language="javascript" type="text/javascript" src="./js/jquery.js"></script>
<script language="javascript" type="text/javascript">
function getjs()
{
  $.getJSON("$.getJSON.php", {}, function(response){
                 alert(response.age);
  });
}

<input type="button" name="btn" id="btn" value="test" onClick="javascript:getjs();"/>
PHPではJSONで戻り値を符号化するため、ここではgetJSONでPHPファイルを呼び出してデータを取得しなければなりません。同時に、getJSONを介して得られたデータは、reponse.name、reponse.ageを用いて直感的にリターン値を取得することができるオブジェクト配列になっていることに留意されたい。
jqueryは$getJSONの方法を提供しています。ドメインを跨ぐajax要求を実現できますが、jqueryAPIの内容は少なすぎます。どうやって$getJSONを使うべきですか?サイトに戻りたいです。
バックエンドはphpを使っています。以下のコードは主に予約登録のインターフェースを提供しています。着信が必要なデータはそれぞれあります。ユーザの名前と連絡先と住所:

/* */
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->execute("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(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コードには、伝えられた「&calback=?」同じく負けます。

$cb = $_GET['callback'];
echo $cb."({code:".json_encode(4)."})";
以上は簡単な$getJSON試験です。この試験を通して、私達は$getJSONをどう使うかを学ぶことができます。インターフェースを作って他の人にドメインをまたぐように要求することもできます。