ホームページ > ウェブフロントエンド > jsチュートリアル > Jquery_jquery での $.get()、$.post()、$.ajax()、$.getJSON() の使用法の概要

Jquery_jquery での $.get()、$.post()、$.ajax()、$.getJSON() の使用法の概要

WBOY
リリース: 2016-05-16 17:15:23
オリジナル
954 人が閲覧しました

各 Jquery Ajax 関数の詳細な解釈:
$.get()、$.post()、$.ajax()、$.getJSON()

1, $.get(url,[data],[callback])

説明: url はリクエストのアドレス、data はリクエストされたデータのリスト、callback はリクエストが成功した後のコールバック関数です。この関数は 2 つのパラメータを受け入れます。1 つ目はサーバーから返されたデータで、2 つ目はサーバーから返されたデータです。パラメータはサーバーのステータスであり、オプションのパラメータです。

このうち、サーバーから返されるデータの形式は実際には文字列形式であり、ここでは比較と説明のために引用しています。

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

$.get("data.php",$("#firstName. val()"),function(data){

$("#getResponse").html(data) }//返されるデータは文字列型です

);


2、$.post(url,[data],[callback],[type])

説明: この関数は $.get() パラメーターに似ていますが、type パラメーターは要求されたデータ型であり、html、xml、json などになります。このパラメーターを json に設定すると、設定されていない場合、$.get() によって返される形式と同じになります。これは文字列

コードをコピー コードは次のとおりです:
$.post("data.php",$("#firstName.val()"),function (データ){
$("#postResponse").html(data.name);

},"json"//取得するデータの型を設定し、取得するデータ形式はjson型となります

);



3、$.ajax(opiton) 注: $.ajax() 関数は強力で、ajax を正確に制御できます。詳細な説明が必要な場合は、関連情報を参照してください


$.ajax({

url: "ajax/ajax_selectPicType.aspx",

データ:{フル:"fu"}、

タイプ: "POST"、

dataType:'json',

成功:コールバック、

エラー:関数(er){

BackErr(er);}

});



4、$.getJSON(url,[data],[callback])
コードをコピーします コードは次のとおりです:
$.getJSON("data.php",$("#firstName. val() "),function(jsonData){

$("#getJSONResponse").html(jsonData.id);}//設定は不要です。直接取得されるデータ型は json なので、呼び出し時に jsonData.id メソッドを使用する必要があります


);


Ajax と jQuery の出会い AJAX ベースのアプリケーションはますます増えており、フロントエンド開発者にとって、基礎となる HTTPRequest の問題に直接対処するのは快適ではありません。 jQuery は JavaScript をカプセル化するため、AJAX アプリケーションを考慮する必要があります。実際、jQuery を使用して AJAX を記述すると、JS で直接記述するよりも N 倍便利になります。 (長い間 jQuery を使っていると、JS の知識が失われるのではないかと思います...) ここでは、誰もが jQuery の構文に精通していることを前提として、ajax のいくつかの応用例をいくつかまとめます。


静的ページをロードします

load( url, [data], [callback] );

url (String) リクエストされた HTML ページの URL アドレス

data (Map) (オプションのパラメーター) サーバーに送信されるキー/値データ
callback (Callback) (オプションのパラメータ) リクエストが完了したときのコールバック関数 (成功する必要はありません)

load() メソッドは、静的ページのコンテンツを指定された jQuery オブジェクトに簡単にロードできます。


$('#ajax-div') .load( 'data.html');


このようにして、data.html のコンテンツが ID ajax-div の DOM オブジェクトにロードされます。次のような ID を指定して、コンテンツの一部を読み込む Ajax 操作を実装することもできます。


コードをコピーします コードは次のとおりです:
$('#ajax-div').load('data.html#my-section');


GET メソッドと POST メソッドを実装する

get( url, [data], [callback] )
url (文字列) リクエストを送信する URL アドレス。
data (Map) (オプションのパラメーター) サーバーに送信されるデータ、 with Key/ ロードが成功した場合、キーと値のペア形式の値が QueryString
callback (Callback) (オプションのパラメーター) コールバック関数としてリクエスト URL に追加されます (このメソッドは、Response の戻りステータスが成功)

明らかに、これは GET メソッドを具体的に実装する関数であり、使用するのは非常に簡単です

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

$.get('login.php', {
ID : 'Robin',
パスワード: '123456',
ゲート : 'index '
} , function(data, status) {
//data は返されるオブジェクト、status はリクエストのステータス
alert(data);
//この時点では、サーバー スクリプトがテキスト「Hello, Robin !」を返すと想定します。
ブラウザはダイアログ ボックスをポップアップ表示してテキストを表示します
alert(status);
//結果は成功です。エラーなどがありますが、成功した場合にのみ実行できる関数は次のとおりです
});

post( url, [data], [callback], [type] )

url (文字列) リクエストを送信する URL アドレス。
data (Map) (オプションのパラメーター) サーバーに送信されるデータ。キーと値のペアの形式で表現されます。
callback (コールバック) (オプションのパラメータ) ロード成功時のコールバック関数 (このメソッドはResponseの戻りステータスが成功の場合にのみ呼び出されます)
type (String) (オプションのパラメータ) リクエストされたデータのタイプ、xml、text、jsonなど

も jQuery が提供する単純な関数です。その使用法は

コードをコピーします。 コードは次のとおりです。
$.post('regsiter.php', {
id:'Robin',
パスワード: '123456',
type:'user'
},function( data, status) {
alert(data);
}, "json");

イベント駆動型スクリプト読み込み関数: getScript()
getScript( url, [callback] )

url (文字列) ロードする JS ファイルのアドレス
callback (関数) (オプション) ロード成功後のコールバック関数

getScript() 関数は、JavaScript スクリプトをリモートでロードして実行できます。この関数は、ドメインを越えて JS ファイルをロードできます (魔法...?!)。この関数の重要性は非常に大きく、ページの初期化時にすべてをロードするのではなく、ユーザーの操作に基づいて対応する JS ファイルをロードできるため、ページの初期ロードのコード量を大幅に削減できます。


コードをコピー コードは次のとおりです。
$.getScript('ajaxEvent.js' , function( ) {
alter("Scripts Loaded!");
// ajaxEvent.js をロードし、正常にロードされた後にダイアログ ボックスを表示します。データ通信用のブリッジを構築します: getJSON()

getJSON(url,[data],[callback])
url (文字列) 送信リクエストアドレス
データ (マップ) (オプション) 送信するキー/値パラメータ
コールバック (関数) (オプション) ロードが成功したときのコールバック関数。

JSON は理想的なデータ送信形式であり、JavaScript や他のホスト言語とうまく統合でき、JS で直接使用できます。 JSON を使用することは、従来の GET および POST を通じて「ヌード」データを直接送信するよりも構造的に合理的で安全です。 jQuery の getJSON() 関数に関しては、JSON パラメーターが設定された ajax() 関数の単純化されたバージョンにすぎません。この関数はドメイン間で使用することもでき、get() や post() に比べて特定の利点があります。さらに、この関数はリクエスト URL を「myurl?callback=X」の形式で記述することで、プログラムにコールバック関数 X を実行させることができます。


コードをコピー

コードは次のとおりです。$.getJSON('feed.php' 、{ リクエスト: 画像、 id: 001、
サイズ: 大
}、function(json) {
アラート(json.images[0].link);
//この json は、リモートで返される json オブジェクトであり、その形式は次のとおりであると仮定します。
//{'images' : [
> // {link:images/001.jpg, x :100, y : 100},
// {link:images/002.jpg, x : 200, y 200:}
//]};
}
);


更底层的ajax()函数
虽然get()和post()函数非常简洁易用,但是对于更复杂的一些设计需求还是无法实现,比如在ajax发送的不同时段做出不同的动作等。jQuery提供一个更为具体的函数:ajax()。

ajax( options )
ajax()提供了一大票参数,所以可以实现相当复杂的功能。

参数名 类型 描述
url String (默认: 当前页地址) 发送请求的地址。
type String (默认: “GET”) 请求方式 (“POST” 或 “GET”), 默认为 “GET”。
注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。
async Boolean (默认: true) 默认设置下,所有请求均为异步请求。
如果需要发送同步请求,请将此选项设置为 false。
注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。

XMLHttpRequest 对象是唯一的参数。

function (XMLHttpRequest) { this; // the options for this ajax request } function (XMLHttpRequest) { this; // the options for this ajax request }

cache Boolean (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
complete Function 请求完成后回调函数 (请求成功或失败时均调用)。

参数: XMLHttpRequest 对象,成功信息字符串。

function (XMLHttpRequest, textStatus) { this; // the options for this ajax request } function (XMLHttpRequest, textStatus) { this; // the options for this ajax request }
contentType String (默认: “application/x-www-form-urlencoded”) 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。
data Object,
String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。
查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。
如果为数组,jQuery 将自动为不同值对应同一个名称。
如 {foo:["bar1", "bar2"]} 转换为 ‘&foo=bar1&foo=bar2′。
dataType String 预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息
返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

“xml”: 返回 XML 文档,可用 jQuery 处理。

“html”: 返回纯文本 HTML 信息;包含 script 元素。

“script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。

“json”: 返回 JSON 数据 。

“jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,

如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

error Function (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。

这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。

function (XMLHttpRequest, textStatus, errorThrown) { // 通常情况下textStatus和errorThown只有其中一个有值 this; // the options for this ajax request } function (XMLHttpRequest, textStatus, errorThrown) { // 通常情况下textStatus和errorThown只有其中一个有值 this; // the options for this ajax request }
global Boolean (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,

如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件

ifModified Boolean (默认: false) 仅在服务器数据改变时获取新数据。

使用 HTTP 包 Last-Modified 头信息判断。

processData Boolean (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串)

以配合默认内容类型 “application/x-www-form-urlencoded”。

如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

success Function

请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态

function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request } function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request }

データ型として xml、script、html、json を指定でき、beforeSend、error、success、complete、その他の状態の処理関数を設定して、ユーザーの Ajax エクスペリエンスを完全に定義するために他の多くのパラメーターをカスタマイズすることもできます。 。次の例では、ajax() を使用して XML ドキュメントを呼び出します:

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

$.ajax({
url: 'doc.xml',
タイプ: 'GET',
dataType: 'xml',
タイムアウト: 1000,
error: function(){
alert('XML ドキュメントのロード中にエラーが発生しました');
},
success: function(xml){
alert(xml);
//xml はここにありますXML jQuery オブジェクトである場合は、find()、next()、または >
AJAX イベントの詳細をご覧ください
前に説明したメソッドの一部には、ページの観点から見ると、独自のイベント処理メカニズムがあります。全体として、それらはローカル関数としか言えません。 jQuery は、特別なニーズを満たすために AJAX グローバル関数の定義を提供します。 jQuery が提供するすべての関数を以下に示します (トリガー順に並べています):

ajaxStart
(グローバル イベント) は新しい Ajax リクエストを開始しますが、現時点で進行中の他の Ajax リクエストはありません。
beforeSend
(ローカル イベント) は Ajax リクエストの開始時にトリガーされます。必要に応じて、ここで XMLHttpRequest オブジェクトを設定できます。 ajaxSend

(グローバル イベント) リクエストが開始される前にトリガーされるグローバル イベント
success
(ローカル イベント) リクエストが成功したときにトリガーされます。つまり、サーバーはエラーを返さず、返されたデータにはエラーがありません。
ajaxSuccess
グローバル イベント グローバル リクエストの成功
error
(ローカル イベント) は、エラーが発生した場合にのみトリガーされます。成功コールバック関数とエラー コールバック関数を同時に実行することはできません
ajaxError
グローバル イベント エラーが発生するとグローバル イベントがトリガーされます
complete
(ローカル イベント) リクエストが成功したか失敗したかに関係なく、同期リクエストの場合、このイベントはリクエストの完了時にトリガーされます。
ajaxComplete
グローバル イベント リクエストの完了時にグローバル イベントがトリガーされます。
ajaxStop
(グローバル イベント) no の場合Ajax が進行中、
ローカル イベントがトリガーされます。 これは前の関数で紹介しました。主にグローバル イベントを見てみましょう。グローバル イベント監視がオブジェクトに対して実行される場合、世界中のすべての AJAX アクションがそのオブジェクトに影響を与えます。たとえば、ページが AJAX 操作を実行している場合、ID が「loading」の DIV が表示されます。




コードをコピー

コードは次のとおりです: $("#loading").ajaxStart(function(){ $(this).show(); });

グローバル イベントは、AJAX リクエストごとに個別に設定することなく、グローバル エラー応答と成功応答を作成するのにも役立ちます。グローバル イベントのパラメーターは非常に便利であることを指摘しておく必要があります。 ajaxStart と ajaxOptions を除いて、他のイベントには、event、XMLHttpRequest、および ajaxOptions の 3 つのパラメーターがあります。最初のパラメータはイベント自体、2 番目は XHR オブジェクト、3 番目は渡した ajax パラメータ オブジェクトです。オブジェクト内のグローバル AJAX 状況を表示します:



コードをコピー
コードは次のとおりです: $( "#msg").beforeSend(function(e,xhr,o) { $(this).html("Requesting" o.url); }).ajaxSuccess(function(e,xhr) , o) {
$(this).html(o.url "リクエスト成功");
}).ajaxError(function(e,xhr,o) {
$(this).html( o .url "Request failed");
});


明らかに、3 番目のパラメーターは、AJAX イベントに追加したカスタム パラメーターを渡すのにも役立ちます。 単一の AJAX リクエストで、global の値を false に設定すると、このリクエストを AJAX グローバル イベントから独立させることができます。



コードをコピー
コードは次のとおりです:$.ajax({ url : "request .php", global: false,
// グローバル Ajax イベントを無効にします。
});


グローバル AJAX のパラメータを設定したい場合は、 ajaxSetup()関数を使用します。たとえば、すべての AJAX リクエストを request.php に渡し、グローバル メソッドを無効にし、POST メソッドの配信を強制します:



コードをコピーします
次のように: $.ajaxSetup({ url: "request.php", global: false,
type: "POST"
});


知っておくべきいくつかのメソッド
AJAX の記述は、ページから対応する値を取得することから切り離せません。ここではいくつかの簡単な方法を示します:

val()
val() 関数は、あらゆる種類の入力の値など、フォーム コンポーネントの値を返すことができます。セレクター操作を使用すると、オプション グループ、入力ボックス、ボタン、その他の要素の値を簡単に取得できます。

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

$("input[name='info ']: text").val();
//info
$("input[name='pass']:password").val();// pass
という名前のパスワードボックスの値を返します$("input[name='save']:radio").val();
// save/ /など


serialize()

serialize 関数は、フォーム オブジェクトのすべての値を文字列シーケンスに変換するのに役立ちます。 GET 形式でリクエストを書きたい場合に非常に便利です。 serializeArray() は、JSON オブジェクトを返す点を除いて、serialize() に似ています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート