0

わかりました、それは基本的に私が得たものです。静的な値も試しました。

$('#submitForm').submit(function() {
    $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});

応答として得られるものは次のとおりです。

Object {readyState: 0, responseText: "", status: 0, statusText = "error"} 

php スクリプト (単なるエコー) は、その ajax 呼び出しの後、通常どおり実行されます。私は何を間違っていますか?私の送信スクリプトはそれほど間違っているようには見えず、XSS も行っていません。: - (

私の HTML フォームは次のようになります。

<form action="http://dev.xxxxxxx.de/users/register" method="post" accept-charset="utf-8" class="form-horizontal" id="submitForm">                <div class="control-group">
                <label class="control-label" for="inputUsername">Nickname</label>
                <div class="controls">
                    <input type="text" name="username" id="inputUsername" value="" placeholder="Nickname" />
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputEmail">E-Mail</label>
                <div class="controls">
                    <input type="text" name="email" id="inputEmail" value="" placeholder="E-Mail" />
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputPassword">Passwort</label>
                <div class="controls">
                    <input type="password" name="password" id="inputPassword" value="" placeholder="Passwort" />
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <input type="submit" class="btn" value="Account erstellen" />
                </div>
            </div>
        </form>
4

1 に答える 1

1

デフォルトでフォームを送信しないようにブラウザーに指示する必要があります。

e.preventDefault();

そう:

$('#submitForm').submit(function(e) {
    e.preventDefault();
    $.ajax({
        type: this.method,
        url: this.action,
        data: $(this).serialize(),
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});

それ以外の場合、AJAX が返される前に、フォームは "action" 属性に従って送信されます。

于 2013-01-10T21:32:44.480 に答える