ホームページ >ウェブフロントエンド >フロントエンドQ&A >Ajaxリクエストのpostとgetの違いは何ですか?
#この記事の動作環境: Windows10 システム、javascript1.8.5&&html5 バージョン、Dell G3 コンピューター。 Ajax リクエストを行うときの post と get の違いは何ですか?1. Get は、送信されたフォームの ACTION 属性が指す URL にパラメータ データ キューを追加します。はフォームの各フィールドと同じであり、URL 内に 1 つの対応関係が表示されます。 Post は、HTTP post メカニズムを使用して、フォーム内の各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。 2. get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得し、post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。どちらの方法でもパラメータはリクエストを使用して取得できます。 3. get によって送信されるデータの量は少なく、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。 4. get のセキュリティは非常に低いですが、post のセキュリティは高いです。 5. He と He は同じです。つまり、アクション ページの最後にあるパラメータ リストは無視されますが、He は異なります。 さらに、Get リクエストには次の特徴があります。通常は疑問符を使用して、データを URL に追加し、サーバーに渡します。 URLアドレスの末尾とデータパラメータの先頭を表します。以下のパラメータの各データパラメータは「name=value」の形式で表示され、結合子&で区別されます。 Post リクエストには次の特徴があります: データは HTTP ボディに配置され、& 接続メソッドと区切りメソッドを含む複数の方法で編成されます。パラメータを隠したり、大量の転送を行うことができます。データの保存が可能になり、より便利になります。 つまり、フォームを送信するときは通常 post メソッドを使用しますが、より大きなデータ ファイルを転送したい場合は post メソッドを使用する必要があります。渡される値がパラメータ モードのみでよい場合(値が 2KB 以下)、get メソッドを使用します。 したがって、両方の ajax 送信の使用法は当然明らかです。違い: 1. Get は送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加しますが、post は「HTTP post」メカニズムを使用して各フィールドとそのコンテンツをフォームに配置します。 "HTML HEADER" " は、ACTION 属性が指す URL アドレスに一緒に送信されます。 2. get モードでは、サーバー側は "Request.QueryString" を使用して変数の値を取得します。post モードの場合、サーバー側は送信データの取得には「Request.Form」を使用します。
知識を広げる:
では、取得と投稿をどのように選択すればよいでしょうか?
get リクエストの目的は、サーバーからリストを取得するためにサーバーにいくつかのパラメーターを与えることです。例: list.aspx?page=1。これは、次のデータを取得することを意味します。最初のページサーバー情報を更新する必要がある場合は、post メソッドを使用する必要があります。たとえば、呼び出しによってサーバーに保存されているデータが変更された場合、2 回目のポスト呼び出しの値が最初の呼び出しの値と異なるため、2 つの同一のポスト呼び出しから返される結果は完全に異なる場合があります。呼び出しによってこれらの値の一部が更新されます。 post 呼び出しは通常、前の応答のキャッシュを保持するのではなく、サーバーから応答を取得します。
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } /* 1.缓存 在url?后面连接一个随机数,时间戳 2.乱码 编码encodeURI */ xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&' + new Date().getTime(),true); xhr.send(); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
post request
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } xhr.open('post','2.post.php',true); //post方式,数据放在send()里面作为参数传递 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型 //post没有缓存问题 //无需编码 xhr.send('username=刘伟&age=30'); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
[関連チュートリアルの推奨事項:
AJAX ビデオ チュートリアル]
以上がAjaxリクエストのpostとgetの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。