でAjaxリクエストを作成する
14792 ワード
AJAXはクライアント側のWeb開発技術の集合で、サーバとデータを非同期に交換します.これは、ページ全体を再読み込みする必要がなく、動的にWebページの部品を更新することができます.この記事では、jQueryとXmlHttpRequestオブジェクトを使用してAjaxリクエストを作成する方法を示します.
The jQuery JavaScriptライブラリは、開発者が簡単にAjaxを使用することができます.
jquery ajax ()メソッドはクライアント側でAJAXリクエストを非同期にするために使用します.
jQueryライブラリを使用するには、HTMLで参照する必要があります
我々は、バックエンドのPHPを呼び出すためのWebページにボタンを追加することができます.
ボタンがクリックされると、JQuery AJAX ()メソッドはバックエンドPHPにAJAX要求を実行します.
バックエンドではPHPがファイルバックエンドです.PHPでは、次のようにします.
XMLHttpRequest ( xhr )は、Ajaxプログラミングの開発者用の他のオプションです.XMLだけでなく、サーバーから非同期的にデータを取得するために使用することができます.これは、ページ全体を再読み込みせずにWebページの更新部分を許可します.それがどのように働くかを試みるために、ちょうどサーバーにAjax要求をするためにユーザー・イベントを引き起こすためにウェブページのボタンを加えてください.
最初のパラメータはリクエストメソッドを定義します
リクエストが送信された後、XMLHttpRequestクライアントは次の状態になります. 0未送信 1オープン 2受信ヘッド 3読み込み 4完了 で
the
情報の応答(100 - 199) 成功した反応(200 - 299) リダイレクトする( 300 - 399 ) クライアントエラー( 400 - 499 ) サーバエラー( 500 - 599 ) XMLHttpRequestの応答ステータスが
HTTP response status codes
XMLHttpRequest.readyState
読書ありがとう!
より多くのプログラミングチュートリアルを見つけるために、訪問してくださいCodeBilby.com
jquery
The jQuery JavaScriptライブラリは、開発者が簡単にAjaxを使用することができます.
jquery ajax ()メソッドはクライアント側でAJAXリクエストを非同期にするために使用します.
jQueryライブラリを使用するには、HTMLで参照する必要があります
<script>
内部タグ<head>
セクション.<head>
<!-- other codes ... -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<!-- other codes ... -->
</head>
上記のように、JNNライブラリファイルをCDN(Content Delivery Network)から含めることで、ライブラリファイルをダウンロードしてホストする必要はありません.The integrity
and crossorigin
属性は、Subresource Integrity (SRI) checking .我々は、バックエンドのPHPを呼び出すためのWebページにボタンを追加することができます.
<button id="demo">Call PHP</button>
次のJavaScriptコードブロックは、ボタンClickイベントです.ボタンがクリックされると、JQuery AJAX ()メソッドはバックエンドPHPにAJAX要求を実行します.
<script>
$(document).ready(function() {
$("#demo").click(function(){
var student = {"name":"Tom", "sex":"M", "age":"11", "class":"6Y"};
$.ajax({
type: 'POST',
url: 'my-backend.php',
data: JSON.stringify(student),
success: function(data, textStatus, xhr) {
alert(data);
},
error: function(xhr, textStatus, errorThrown) {
alert('Error Msg: ' + errorThrown);
}
});
});
});
</script>
JavaScript変数student
学生の個人データを格納するオブジェクトを定義します.にajax()
メソッドをリクエストしますtype
掲示する.インurl
, リクエストを受け取るPHPファイルを設定します.JavaScript関数JSON.stringify()
はオブジェクトを変換するために使われるstudent
それがサーバーに送られる前に、JSONストリングに.の関数success
and error
リクエストが成功したか失敗した場合には、それぞれ呼び出されます.ここで、リクエストが成功した場合、サーバーから返されたデータを持つアラートボックスが表示されます.それが失敗するならば、警報ボックスはHTTPステータスの原文の部分を表示しますerrorThrown
.バックエンドではPHPがファイルバックエンドです.PHPでは、次のようにします.
<?php
$json = file_get_contents('php://input');
$data = json_decode($json);
echo $data->name;
?>
機能file_get_contents()
はサーバに送信されたデータを取得するために使われる.機能json_decode()
を呼び出して、JSONエンコードされた文字列を$json
PHP変数に$data
. 最後に、学生の名前$data->name
が返される.XMLHttpRequestオブジェクト
XMLHttpRequest ( xhr )は、Ajaxプログラミングの開発者用の他のオプションです.XMLだけでなく、サーバーから非同期的にデータを取得するために使用することができます.これは、ページ全体を再読み込みせずにWebページの更新部分を許可します.それがどのように働くかを試みるために、ちょうどサーバーにAjax要求をするためにユーザー・イベントを引き起こすためにウェブページのボタンを加えてください.
<button id="demo" onclick="makeAjaxCall()">Call PHP</button>
JavaScriptでは、関数を作るmakeAjaxCall()
ボタンClickイベントを処理し、XmlHttpRequestを使用してAjaxリクエストを作成します.function makeAjaxCall(){
var request = new XMLHttpRequest();
request.open('POST', 'my-backend.php');
var student = {"name":"Tom", "sex":"M", "age":"11", "class":"6Y"};
request.send(JSON.stringify(student));
request.onload = function() {
if (request.readyState == 4) {
//the operation is done
if (request.status == 200) {
alert(request.response);
} else if (request.status >= 400){
//client or server errors
alert('Error Code: ' + request.status + ' Error Msg: ' + request.statusText);
}
}
}
}
まず、オブジェクトXmlHttpRequestを初期化します.var request = new XMLHttpRequest();
その方法open()
が新たなリクエストを作成するために呼び出されます.最初のパラメータはリクエストメソッドを定義します
POST
. 2番目のパラメータはリクエストを送信するURLです.ここでは、バックエンドのPHPファイルとして設定しますmy-backend.php
. データオブジェクトを定義するstudent
学生の個人データを保存するため.XMLHttpRequestメソッドsend()
が要求された場合、student
. JavaScript関数JSON.stringify()
はオブジェクトを変換するために使われるstudent
それがサーバーに送られる前に、JSONストリングに.XMLHttpRequestonload
プロパティは、要求トランザクションが正常に完了したときに呼び出されるコールバック関数として設定されます.リクエストが送信された後、XMLHttpRequestクライアントは次の状態になります.
onload
コールバック関数the
request.readyState
プロパティの状態.それが等しいならば4
, 操作を行うことを意味します.次に、XmlHttpRequestのレスポンスのHTTPステータスコードをチェックし続けますrequest.status
. それが等しいならば200
, これは、要求が成功したことを意味し、サーバーから返されたデータを表示できます.alert(request.response);
HTTPレスポンスステータスコードは以下のクラスでグループ化されます:request.status
は400
または、エラーメッセージを表示します.alert('Error Code: ' + request.status + ' Error Msg: ' + request.statusText);
バックエンドのPHPはマイバックエンドをファイルします.PHPはJSONデータをサーバーに投稿し、デコードして学生の名前を出力します$data->name
クライアント側に.<?php
$json = file_get_contents('php://input');
$data = json_decode($json);
echo $data->name;
?>
参考文献
HTTP response status codes
XMLHttpRequest.readyState
読書ありがとう!
より多くのプログラミングチュートリアルを見つけるために、訪問してくださいCodeBilby.com
Reference
この問題について(でAjaxリクエストを作成する), 我々は、より多くの情報をここで見つけました https://dev.to/yanyy/make-ajax-requests-in-javascript-2e5hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol