10

さて、そのすべてがタイトルにあります。破壊的なアクションを実行する前に、ユーザーのパスワードを確認しようとしています。

$.ajax({
  type: 'POST',
  url: '/path/to/post.json',
  data: { password: '**********' },
  success: function() { console.log("Success!"); },
  error: function() { console.log("Error!"); }
});

コンソールの場合:

202 Accepted 123ms
Error!

間違ったパスワードで403Forbidden、正しいパスワードで202 Acceptedが適切な応答コードだと思いましたが、正直に言うとHTTPについてはよくわかりません。

jQueryバージョン1.8.3

4

2 に答える 2

14

エラーコールバックは、ステータスが202であるために発生しませんが、応答をJSONとして解析する際のエラーが原因で発生します。jQueryの場合2xx304成功です。

応答本文がInvalid Password無効なjsonである場合、それを解析しようとするとjQueryエラーがトリガーされます。適切なJSON文字列には、のように引用符が付いています"Invalid Password"。エラーが発生しやすいjsonを手動で作成するのではなく、JSONシリアライザーを使用して応答をJSONエンコードする必要があります。

于 2013-03-14T17:12:13.353 に答える
0

気にしないで、

statusCode: {
  202: function() { console.log("Success!"); },
  403: function() { console.log("Error!'); }
}

successerrorコールバックの代わりに。それでも少し困惑する202はエラー1を引き起こします。

于 2013-03-14T16:57:01.863 に答える