-1

これを送信するためにAjaxを使用しています。ボックスで終わるすべての変数は globalです。

完全なコードではありませんが、init などの他の部分は動作していますのでご安心ください。

function begin() {
    if (confirm("Are you sure you want to proceed. This is completely up to you and all consequences go towards you!!"))
    {
        var usernameName = usernameBox.getAttribute("name");
        var passwordName = passwordBox.getAttribute("name");
        var hiddenName = hiddenBox.getAttribute("name");
        var username = usernameBox.value;
        var password = passwordBox.value;
        var hidden = hiddenBox.value;
        if (username !== "" && password !== "")
        {
            var http = new XMLHttpRequest();
            http.open("POST", "<?php echo $url_base, $action?>");
            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            http.onreadystatechange = function()
            {
                console.log(http.readyState + " " + http.status);
                if (http.readyState == 4 && http.status == 200)
                {
                    alert(http.responseText);
                }
                else
                {
                    alert("We had an error!!!");
                }
            }
            var query = hiddenName + "=" + hidden + "&" + usernameName + "=" + username + "&" + passwordName + "=" + password;
            //var query = usernameName + "=" + username + "&" + passwordName + "=" + password;
            console.log(query);
            http.send(query);
        }
        else
        {
            alert("don't be a fool fill out the info");
        }
    }
    else
    {
        alert("No refunds!!");
    }
}

フォームは以下です。onclickこのフォームは、送信の代わりに送信を使用してから Ajax を使用すると完全に機能します。フォーム名である可能性があります。ご参考までに、私はサーバーにアクセスできません。

<form name="signin_form" action="<?php echo $url_base,$action?>" method="post">
<input id='hidden' type="hidden" name="loginPage" value="student">
<label>Username <input id='userid' size="25" name="student_userid" tabindex="0"><br/></label>
<label> Password<input id='password' type="password" size="25" name="student_password"></br></label>
<input id='submit' style="COLOR: #6373b5" type="button" value="Sign In" width="100px" onclick="begin();">
</form>
4

1 に答える 1

0

あなたのコードに特に問題はありません。とにかくフォーム名は渡されません。

リクエストがhttp://www.fiddler2.com/fiddler2/またはhttp://www.charlesproxy.com/と同一であることを確認しましたか? これらのツールは、発生した Web 要求と応答をキャプチャして表示するローカル プロキシ サーバーをマシン上に自動的に作成します。ツールを起動してブラウザでリクエストを試すだけで、生のリクエスト/レスポンスのペアが表示されます。

URL、ヘッダー、本文が一致していることを確認してください。

XHRが追加のヘッダーを追加している可能性があり、サーバー コードはそれらに基づいて別の処理を行っています。

于 2013-02-09T03:21:33.360 に答える