1

jQuery Formプラグインを使用して、Ajax でフォーム送信を処理しています。

$('.login-form').ajaxForm({
    dataType: 'json',
    success: function(data){
        console.log('Success!');
        console.log(data);
    },
    error: function(data){
        console.log('There was an error:');
        console.log(data);
    }
})

送信後、ajax はステータス「200」のエラーを返します。これは JSON 形式の応答です。

{
    "success": false, 
    "heading": "The following errors were encountered", 
    "message": "<ul><li>The existing username and/or password you submitted are not valid</li></ul>"
}

jsonlint.comでそれを実行したところ、有効として返されました。

Chrome の Network タブでは、レスポンスは type として返されapplication/jsonます。

では、なぜ ajax は「成功」ではなく「エラー」を返すのでしょうか?

jQuery1.9.1

4

1 に答える 1

1

JSONmessageキーの値に改行が含まれていたため、何らかの理由でエラーが発生しました。

{
    "success": false, 
    "heading": "The following errors were encountered", 
    "message": "<ul><li>The existing username and/or password you submitted are not valid</li>
</ul>"
}

文字列内の改行は問題にならないと思いますが、問題があると思います...

于 2013-09-04T19:07:36.910 に答える