ホームページ ウェブフロントエンド jsチュートリアル ajax_javascript スキルの説明、使用法、get と post の違い

ajax_javascript スキルの説明、使用法、get と post の違い

May 16, 2016 pm 05:45 PM
ajax get post

私はこれまで ajax をあまり注意深く勉強したことがなく、問題を見つけて解決策を見つけたときに使用しました。

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
(content) "&id=1" ;
Post メソッドを使用する場合は注意してください :
1. ヘッダーの Context-Type を application/x-www-form-urlencode に設定して、サーバーがエンティティにパラメーター変数があることを認識できるようにします。通常は SetRequestHeader("Context-Type", "application) XmlHttpRequest オブジェクトの /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=?abc&sex=man&age=18 を使用します。 =18 はどちらも誤りです。
3. パラメーターは Send (パラメーター) メソッドで送信されます。例: xmlHttp.send(name); 4. サーバー側のリクエスト パラメーターは、Get と Post を区別します。 get メソッドの場合は $username = $_GET["username"]; post メソッドの場合は $username = $_POST["username"]; Post メソッドと Get メソッドは次のとおりです。
:
1. Post がデータを送信する場合、URL にデータを表示する必要はありませんが、Get メソッドは URL に表示する必要があります。
2.Post は 2M に達する大量のデータを送信しますが、Get メソッドは URL の長さの制限により約 1024 バイトしか転送できません。
3.Post は、名前が示すように、送信することを目的としています。 Get がサーバー セグメントにデータを送信できる理由は、http リクエストの内容としてどのような種類のデータが必要であるかをサーバーに伝えるためだけです。 Get は送信される Http ヘッダーに含まれます。 get メソッドは、Request.QueryString["strName"] を使用して受信します。post メソッドは、Request.Form["strName"] を使用して受信します。
注:
2 つの送信メソッドは統合できますが、 , Request("strName ") を使用して送信されたデータを取得しますが、これはプログラムの効率に影響するため、お勧めできません。
一般に、フォームの送信に Get メソッドの使用は避けてください。セキュリティ上の問題が発生する可能性があります。


AJAX コードの文字化けの問題

コードの文字化けの原因:
1. xtmlhttp が返すデータのデフォルトの文字エンコーディングは utf-8 です。クライアントページが gb2312 などのエンコードされたデータの場合、文字化けが発生します
2. 投稿で送信されたデータのデフォルトの文字エンコーディングメソッドは utf-8 です。サーバーが gb2312 である場合、または他のエンコードされたデータでは文字化けが発生します。解決策は次のとおりです。: 1。クライアントが gb2312 エンコードの場合、出力を指定します。サーバー上のストリームエンコーディング
2. サーバー側はクライアントとクライアントの両方で utf-8 エンコーディングを使用します
gb2312:header('Content-Type:text/html;charset=GB2312'); header('Content-Type:text/html;charset=utf -8');
注: 上記のメソッドを実行しても文字化けが返される場合は、メソッドが get リクエスト (またはその他) であるかどうかを確認してください。パラメータを渡すURLを含む)、渡されたパラメータは最初にencodeURIComponentメソッドで処理される必要があります。encodeURIComponentで処理されないと文字化けも発生します。
以下は私が見つけた例です。私が書いたものは比較的簡単で、あまり標準的ではないので、他の人が書いたものを参照する方が良いです(笑)。


コードをコピー


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


var http_request = false;
function makePOSTRequest(url, パラメータ) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla、Safari、...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// 予想されるコンテンツ タイプに応じてタイプを設定します
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('XMLHTTP インスタンスを作成できません');
false を返します。
}
http_request.onreadystatechange =alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("コンテンツの長さ", パラメーター.長さ);
http_request.setRequestHeader("接続", "閉じる");
http_request.send(パラメータ);
}
関数alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
結果 = http_request.responseText;
document.getElementById('myspan').innerHTML = 結果;
} else {
alert('リクエストに問題がありました。');
}
}
}
function get(obj) {
var poststr = "mytextarea1=" encodeURI( document.getElementById("mytextarea1").value )
"&mytextarea2= " encodeURI( document.getElementById("mytextarea2").value );
makePOSTRequest('post.php', poststr);
}

post.php
一超大文本框textarea里面有量の数据,ajax通过URL请求サービス返结果,URLここにはさまざまなパラメータが含まれていますが、当然、以前の超大規模なテキスト ボックスのコンテンツも含まれています。 以前にリリースされた Firefox では、テキストエリアにある 4000 の長さの文字列が URL 要求でまったく問題ありませんでした。回答しました。IE の下で、テキストエリアの文字の長さが 2000 (大まかなデータ) を超えているときに、JS 認証が行われ、ajax がフロント 台に戻り値を返しませんでした。元のコードを参照してください。 >
复制代
代码如下: function getJsonData(url) {
var ajax = Common.createXMLHttpRequest();
ajax.open("GET",url,false);
ajax.send(null);
試してください
{
eval("var s = " ajax.responseText);
s を返します。
}
catch(e)
{
null を返す;
}
}
関数 getData(){
var url="BlacklistService.do?datas=" datasvalue;
var result = getJsonData(url);
}


ネット上での Google 公開解決法: 変更された使用する XMLHttp の要求は POST になり、パラメーターと URL が分離されます。 >

复制代码


代码如下:
function getJsonData(url,para) { var ajax = Common.createXMLHttpRequest (); ajax.open("POST",url,false); ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(para);
試してください
{
eval("var s = " ajax.responseText);
s を返します。
}
catch(e)
{
null を返す;
}
}
function getData(){
var url="BlacklistService.do";
var para="datas=" データ値;
var result = getJsonData(url,para);
}


================================
get リクエスト メソッドと post リクエスト メソッドの類似点と相違点Ajax 2008 年 10 月 4 日土曜日 02:37 pm Ajax では、get リクエストと post リクエストをよく使用します。では、答える前に、まず get と post の違いを理解します。
1. Get は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。値はフォームの各フィールドに 1 対 1 で対応します。 URLで見れます。 Post は、HTTP post メカニズムを使用して、フォーム内の各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。
2. get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得します。 post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。どちらの方法でもパラメータはリクエストを使用して取得できます。
3. get によって送信されるデータの量は少なく、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。ただし、理論上はサーバーごとに異なります。
4. get のセキュリティは非常に低いですが、post のセキュリティは高くなります。
5.
は と同じです。つまり、メソッドが get の場合、アクション ページの末尾にあるパラメーター リストは無視され、 は異なります。さらに、Get リクエストには次の特徴があります。通常は疑問符を使用して、URL にデータを追加してサーバーに渡します。 URL アドレスの末尾とデータ パラメータの先頭を表します。以下のパラメータの各データ パラメータは「名前 = 値」の形式で表示され、コネクタ & で区別されます。 Post リクエストには次のような特徴があります。データは HTTP 本文に配置され、& 接続メソッドやセパレータ メソッドなど複数の方法で編成されます。パラメータを非表示にして大量のデータを転送できます。もっと便利に。以上の説明で、どのような場合に get メソッドを使用するのか、どのような場合に post メソッドを使用するのかが理解できましたね。フォームを送信するとき、より大きなデータ ファイルを送信したい場合は、post メソッドを使用する必要があります。ポストを利用する。渡される値がパラメータ モードのみでよい場合(値が 2KB 以下)、get メソッドを使用します。次に、URL 経由でリクエストを送信する場合の get メソッドと post メソッドの違いを見てみましょう。次の例を使用すると、同じデータを GET と POST で送信する場合の違いが簡単にわかります。送信されるデータは username=Zhang San です:
コードをコピー コードは次のとおりです:

GET /?username=张三HTTP/1.1
受け入れ: image/gif、image/x-xbitmap、image/jpeg、 image/ pjpeg、application/vnd.ms-powerpoint、application/vnd.ms-excel、application/msword、*/*
Accept-Language: zh-cn
Accept-Encoding: gzip、deflate
ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
ホスト: localhost
接続: キープアライブ
POST メソッド:
POST / HTTP /1.1
受け入れる: image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/vnd.ms-powerpoint、application/vnd.ms-excel、application/msword、*/*
Accept -Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip、deflate
User-Agent: Mozilla/4.0 (互換性、MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
ホスト: localhost
Content-Length: 28
接続: キープアライブ
username=张三

違いは 1 つで、フォームのパラメーターと値は URL リクエストに添付され、もう 1 つは HTTP リクエストのメッセージ エンティティに含まれます。上の 2 つの段落を比較すると、GET メソッドではフォームのコンテンツが前のリクエスト ヘッダーに配置され、POST メソッドではこれらのコンテンツがリクエストの本文に同時に配置されることがわかります。 application/x-www-form-urlencoded に設定されます。送信されるテキストは同じです。encodeURIComponent(arg1)=encodeURIComponent(value1)&encodeURIComponent(value2) のように構成できます。 &... ..注: encodeURIComponent は、charstring の内容を含む新しい String オブジェクト (Unicode 形式) を返します。すべてのスペース、句読点、アクセント、およびその他の非 ASCII 文字は、%xx エンコーディングに置き換えられます。xx は 16 進数に相当します。キャラクターのシステム番号を表します。 たとえば、スペースは " " として返されます。 255 を超える文字値は %uxxxx 形式で保存されます。 JavaScript の encodeURIComponent() メソッドを参照してください。上記を理解した後、ajax の XMLHttpRequest オブジェクトを使用して、それぞれ GET メソッドと POST メソッドを使用してサーバーにデータを送信します。

GET メソッド
コードをコピー コードは次のとおりです。

var postContent ="name=" encodeURIComponent("xiaocheng") "&email=" encodeURIComponent("xiaochengf_21@yahoo.com.cn");
xmlhttp.open("GET", "somepage"); "?" postContent、true);


POST メソッド
コードをコピーします コードは次のとおりです:
var postContent ="name=" encodeURIComponent("xiaocheng") "&email=" encodeURIComponent("xiaochengf_21@yahoo) .com.cn ");
xmlhttp.open("POST", "somepage", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;
//xmlhttp.setRequestHeader("Content-Type", "text/xml") //xml ファイルが送信される場合



Ajax の post メソッドの使用

私は Ajax の学習を始めたばかりですが、多くのオンライン コードがパラメータの送信に Get メソッドを使用していることに気付きました。フィルタは文字化けを処理しますが、Get メソッドのフィルタはそれを監視できません。そのため、私は常に Post メソッドを使用することを好みます。ここでは、Ajax の Get メソッドと Post メソッド GET< を比較します。 🎜>:


コードをコピー
コードは次のとおりです: < !-- var xmlHttpRequest;
function createXMLHttpRequest(){
try
{
// Firefox、Opera 8.0、Safari
xmlHttpRequest =new XMLHttpRequest();
}
catch (e)
{

// Internet Explorer
try
{
xmlHttpRequest=new ActiveXObject("Msxml2. XMLHTTP");
}
catch (e)
{

try
{
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("お使いのブラウザは AJAX をサポートしていません。 ");
return false;
}
}
}

}
// リクエスト送信 function
function sendRequestPost(url,param){
createXMLHttpRequest();
xmlHttpRequest.open("GET",url "?" param,true);
xmlHttpRequest.onreadystatechange = processResponse
}
//戻り情報関数
関数processResponse(){
if(xmlHttpRequest.readyState == 4){
if(xmlHttpRequest.status == 200){
var res = xmlHttpRequest.responseText;
window.alert(res);
}else{
window.alert("リクエストページ例外");
}
}
}
//認証関数
function userCheck(){
var userName = document.loginForm.username.value;
var psw = document.loginForm.password.value;
if(userName == ""){
window.alert("ユーザー名を空にすることはできません" );
document.loginForm.username.focus();
return false;
var url = "Servlet/userLogin_do"; =" userName "&psw=" psw;
sendRequestPost(url,param);
}
}
// -->
< mce: script type="text/javascript">


POST
:




コードをコピー


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




It can be found that the GET method parses parameters according to the address bar, and post parses parameters according to the param string in sendRequestPost(url,param);. The important thing is that the POST method needs to be added in open (); You need to add xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); after the method. I don’t know why. I am a beginner. If you add it, you can pass parameters. I will study it in the future. .
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP と Ajax: オートコンプリート提案エンジンの構築 PHP と Ajax: オートコンプリート提案エンジンの構築 Jun 02, 2024 pm 08:39 PM

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

jQuery AJAX リクエストで発生した 403 エラーを解決する方法 jQuery AJAX リクエストで発生した 403 エラーを解決する方法 Feb 20, 2024 am 10:07 AM

タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

jQuery AJAXリクエスト403エラーを解決する方法 jQuery AJAXリクエスト403エラーを解決する方法 Feb 19, 2024 pm 05:55 PM

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

PowerShell を使用してタスクを自動化する方法 PowerShell を使用してタスクを自動化する方法 Feb 20, 2024 pm 01:51 PM

IT 管理者またはテクノロジーの専門家であれば、自動化の重要性を認識している必要があります。特に Windows ユーザーにとって、Microsoft PowerShell は最高の自動化ツールの 1 つです。 Microsoft は、サードパーティのアプリケーションをインストールする必要なく、自動化のニーズに対応するさまざまなツールを提供しています。このガイドでは、PowerShell を活用してタスクを自動化する方法について詳しく説明します。 PowerShell スクリプトとは何ですか? PowerShell の使用経験がある場合は、コマンドを使用してオペレーティング システムを構成したことがあるかもしれません。スクリプトは、.ps1 ファイル内のこれらのコマンドの集合です。 .ps1 ファイルには、基本的な Get-Help など、PowerShell によって実行されるスクリプトが含まれています。

jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? Feb 23, 2024 pm 04:27 PM

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

ページにジャンプしてPOSTデータを運ぶPHPを実装する方法 ページにジャンプしてPOSTデータを運ぶPHPを実装する方法 Mar 22, 2024 am 10:42 AM

PHP は Web サイト開発で広く使用されているプログラミング言語であり、ページ ジャンプと POST データの送信は Web サイト開発における一般的な要件です。この記事では、PHP のページジャンプを実装して POST データを運ぶ方法を、具体的なコード例を含めて紹介します。 PHP では、ページ ジャンプは通常、ヘッダー関数を通じて実装されます。ジャンプ プロセス中に POST データを送信する必要がある場合は、次の手順で実行できます。 まず、ユーザーが情報を入力して送信ボタンをクリックするフォームを含むページを作成します。フォーム内のアクティ

PHP と Ajax: 動的に読み込まれるコンテンツを作成するためのソリューション PHP と Ajax: 動的に読み込まれるコンテンツを作成するためのソリューション Jun 06, 2024 pm 01:12 PM

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

See all articles