GETメソッドを使用してユーザー名とパスワードを送信してログイン資格証明を検証するAJAXを用意しました。 POSTメソッドを使用するようにこのコードを更新したいですが、どこから始めるか、何を変更するのかはわかりません。POSTメソッドを使用してページに送信するAJAX
私がこれをやっている理由は、別のページに送信されるデータが大きくなり、GETがそれをすべて送信しないためです。
function createObject()
{
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
var usr;
var psw;
function login()
{
usr = encodeURI(document.getElementById('username').value);
psw = encodeURI(document.getElementById('password').value);
http.open('get', 'login.php?user='+usr+'&psw='+psw);
http.onreadystatechange = loginReply;
http.send(null);
}
function loginReply()
{
if(http.readyState == 4)
{
var response = http.responseText;
if(response == 0)
{
alert('Login failed! Verify user and password');
}
else
{
alert('Welcome ' + usr);
document.forms["doSubmit"].elements["usr"].name = "usr";
document.forms["doSubmit"].elements["usr"].value = usr;
document.forms["doSubmit"].elements["pwd"].name = "pwd";
document.forms["doSubmit"].elements["pwd"].value = psw;
document.forms["doSubmit"].action = location.pathname + "user/";
document.forms["doSubmit"].submit();
}
}
}
このコードは、URL内のパラメータを取得し、送信使用し、応答を待ち:
この
は私が持っているコードです。私はサイズのためにPOST経由でパラメータを送信したい。後述のように送信されるデータは、<textarea name='taData' id='taData'></textarea>
これは、資格情報を確認するために危険な方法です。 _GET変数はサードパーティに100%公開されているため、URLを介してパスワードを渡すことは本当に使用すべきではありません。 –
@BenDだから彼は 'POST'を使用したいのです – xandercoded
私はポストに切り替えるために彼に拍手喝采しますが、"私はこれをやっている理由は、別のページに送られるデータが大きく、GETは送信しません実際には、彼のウェブサーバーを再構成することによってURLの長さ制限の大部分を克服することができます(これらの文字列は絶対に大量であり、ブラウザの上限に達しない限り) ...私は元のコメントでこれを明らかにする必要がありました。 –