ホームページ >ウェブフロントエンド >jsチュートリアル >Jquery AJAX POSTとGET_jqueryの違い
1: GET アクセス ブラウザはそれを冪等であると見なします
は同じ URL であり、結果は 1 つだけです [同一とは、URL 文字列全体が正確に一致することを意味します]
したがって、URL 文字列が 2 回目の訪問中に変更されない場合、ブラウザは最初の訪問の結果を直接取得します
POST は変更アクセスとみなされます (ブラウザは POST の送信を変更する必要があると考えます)
GET の冪等アクセスを防ぐには、URL の後に追加するだけですか? new Date();, [要するに、訪問ごとに URL 文字列を変える]
この原則は、WEB ページをデザインする際にも従う必要があります
2: 1. Ajax Get と Post の違いについて説明します
get メソッド:
get メソッドを使用すると、単純なデータを送信できますが、データは通常 1KB に制限され、URL に付加されて送信されます (HTTP ヘッダー送信)。つまり、ブラウザは、各フォーム フィールド要素とそのデータを、URL パラメータの形式でリクエスト ラインのリソース パスに追加します。最も重要なことは、クライアントのブラウザによってキャッシュされるため、他の人がブラウザの履歴からアカウント番号やパスワードなどの顧客データを読み取ることができるということです。したがって、場合によっては、get メソッドが重大なセキュリティ問題を引き起こす可能性があります。
Post メソッド:
POST メソッドを使用すると、ブラウザーは各フォーム フィールド要素とそのデータを、HTTP メッセージのパラメーターとしてではなく、HTTP メッセージのエンティティ コンテンツとして Web サーバーに送信します。 URL アドレスの送信。POST メソッドを使用した場合、送信されるデータ量は GET メソッドを使用した場合よりもはるかに大きくなります。
つまり、GET メソッドは送信するデータ量が少なく、処理効率が高く、セキュリティが低く、キャッシュされますが、POST ではその逆が当てはまります。
get メソッドを使用する場合は、次の点に注意してください。
1 get リクエスト (またはパラメータを渡す URL を伴うもの) の場合、渡されたパラメータは最初に encodeURIComponent メソッドによって処理される必要があります。例: var url。 = "update.php?username=" encodeURIComponent(username) "&content=" encodeURIComponent
(コンテンツ) "&id=1" ;
Post メソッドを使用する場合の注意事項:
1. ヘッダーの Context-Type を application/x-www-form-urlencode に設定します。サーバーがエンティティを認識していることを示すパラメータ変数があり、通常は XmlHttpRequest オブジェクトの SetRequestHeader("Context-Type","application/x-www-form-urlencoded;") が使用されます。例:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2. パラメーターは、名前と値が 1 対 1 で対応するキーと値のペアです。たとえば、var name=abc&sex=man&age=18 の場合は、var name=update.php?
abc&sex=man&age=18 と var name=?abc&sex=man&age=18 は両方とも間違っています。
3. パラメータは Send (parameter) メソッドで送信されます。例: xmlHttp.send(name);は get メソッドで、直接 xmlHttp.send(null);
4. サーバー側のリクエストパラメーターは Get と Post を区別します。 get メソッドの場合は $username = $_GET["username"]; post メソッドの場合は $username = $_POST["username"];
AJAX の文字化け問題
コード化けの原因:
1. xtmlhttp によって返されるデータのデフォルトの文字エンコーディングが gb2312 またはその他のエンコードされたデータである場合、コード化けが生成されます。
2、postメソッドで送信するデータのデフォルトの文字エンコーディングはutf-8です。サーバー側がgb2312などのエンコードデータの場合、文字化けが発生します。
解決策は次のとおりです。
1. クライアントが gb2312 エンコーディングを使用する場合は、サーバーで出力ストリーム エンコーディングを指定します。
2.クライアントの utf-8 エンコーディング
gb2312:header('Content-Type:text/html;charset=GB2312');
utf8:header('Content-Type:text/html;charset=utf-8');
注: 上記のメソッドを実行しても文字化けが返される場合は、get リクエスト (または URL 転送に関連するパラメータ) について、メソッドが get であるかどうかを確認してください。渡されたパラメータはまず encodeURIComponent メソッドで処理する必要があります。encodeURIComponent で処理しない場合も文字化けが発生します。