ホームページ >ウェブフロントエンド >jsチュートリアル >jqueryの$getjson呼び出しとリモートJSON文字列の取得問題_javascriptスキル

jqueryの$getjson呼び出しとリモートJSON文字列の取得問題_javascriptスキル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-05-16 17:47:011247ブラウズ

コードは次のとおりです:

コードをコピー コードは次のとおりです:

="http:// www.w3.org/1999/xhtml">


無題ドキュメント

🎜>









🎜>
コードは次のとおりです: response.Write("{name:'peter',age:18}"); ;
なぜ取得できないのですか? , aspのjsonを取得したいです。
解決された主な問題は次のとおりです。キーと値には次のように二重引用符が必要です。



コードをコピー


コードは次のとおりです。 :
response.Write("{""名前"":""ピーター"",""年齢"":""18″"}") jQuery でよく使われる GetJSON を呼び出してリモートの JSON 文字列を取得し、JSON オブジェクトに変換し、成功した場合はコールバック関数を実行します。プロトタイプは次のとおりです。 jQuery.getJSON( url, [data], [callback] ) は、ドメイン間で JSON データを読み込みます。
url: リクエストを送信するアドレス
data: (オプション) 送信されるキー/値パラメータ
callback: (オプション) ロードが成功したときのコールバック関数
は主にクライアントが次のことを行うために使用されます。サーバーの JSON データを取得します。簡単な例:
サーバー スクリプト、JSON データを返す:




コードをコピー


コードは次のとおりです:
2 つの点に注意してください: まず、クライアントに戻る前に、PHP 関数 json_encode を使用して返されたデータをエンコードします。 2 番目: echo はクライアントに戻るために使用され、戻るのではありません。
次はコア クライアント コードです:



コードをコピー


コードは次のとおりです:
function getjs() { $.getJSON("$.getJSON.php", {}, function(response){
alert(response.age);
} );
}
>

PHP では戻り値が JSON でエンコードされているため、getJSON を使用して PHP ファイルを呼び出してデータを取得する必要があります。同時に、getJSONで取得したデータがオブジェクト配列になっていることがわかり、response.nameとresponse.ageを使うことで直感的に戻り値を取得することができます。
jquery は、クロスドメインの Ajax リクエストを実装できる $.getJSON メソッドを提供しますが、jqueryAPI の内容は、$.getJSON の使用方法と、リクエスト元の Web サイトから返されるデータベースの種類が少なすぎます。 $.getJSON がそれを取得できることを確認するには、以下に実際の例を使用して説明します。
バックエンドは PHP を使用しています。次のコードの主な機能の 1 つは、渡す必要があるデータは次のとおりです: ユーザー名、連絡先番号、住所:



コードをコピー


コードは次のとおりです:

/*Reservation registration execution interface*/
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;

Then the front-end processing :
Copy code The code is as follows:

$(document).ready(function(){
//The following 3 parameters are required for reservation registration
var name = "name"; //varchar type, with a maximum length of 8 digits (4 Chinese characters)
var phone = "phone"; / /varchar type, length is 11 digits
var addr = "addr"; //varchar type, length is up to 500 digits (250 Chinese characters)
$.getJSON("http://request website address/data .php?ac=yuyue_interface&name=" name "&phone=" phone "&addr=" addr "&callback=?", function(data){
if(data.code==1){
//Customized Code
alert("Name cannot be empty");
}else if(data.code==2){
//Custom code
alert("Mobile phone cannot be empty");
}else if(data.code==3){
//Customized code
alert("The unit cannot be empty");
}else{
//Customized Code
alert("Appointment successful");
}
});
});

It should be noted that in the back-end php code, it must Also output the " &callback=? " passed in, such as:
Copy the code The code is as follows:

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

The above is one A simple $.getJSON test. Through this test, we can learn how to use $.getJSON and how to make an interface to allow others to make cross-domain requests.
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。