3

ステータス コード 500 を返すサーバーがあり、jQuery フォームはエラー コールバックではなく成功コールバックを呼び出します。

jQuery バージョン: 1.7.1
jQuery フォーム バージョン: 2.73 2011 年 3 月
サーバー apache2

これらはいくつかのコード スニペットです。

var options =
{
       error         : on_upload_error
    ,  success       : on_upload_succes
};

// bind form using 'ajaxForm'
$( '#upload-form' ).ajaxForm( options );



function on_upload_error( jqXHR, textStatus, errorThrown )
{
    console.log( "in error function" );
}




function on_upload_succes( responseText, statusText, xhr, form )
{
    console.log( 'responsText: ' + responseText );
    console.log( 'statusText: ' + statusText );
    console.log( xhr );
    console.log( form );

    // ....
}

サーバーからのヘッダーは私には正しいようです:

HTTP/1.1 500 Internal Server Error
Date: Wed, 09 May 2012 18:35:11 GMT
Server: Apache/2.2.16 (Debian)
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 405
Connection: close
Content-Type: text/html; charset=iso-8859-1

これを「in error function」と表示することはできません。さらに、on_upload_success に返される statusText パラメータには、文字列「success」が含まれています。

すべての手がかりを歓迎

4

2 に答える 2

0

まず、500 内部サーバー エラーは非常に一般的な HTTP ステータス コードであり、Web サイトのサーバーで何か問題が発生したことを意味しますが、サーバーは正確な問題を特定できませんでした。

jquery は 500 内部エラーの発生時にエラー関数を呼び出さないことが知られているため、これを処理する通常の方法はステータス コードを使用することです。

$.ajax({
    statusCode: {
        500: function() {
          alert("Something went wrong !");
        }
      }
   });

status code の使用の詳細については、jquery API を確認してください: https://api.jquery.com/jQuery.ajax/

500 エラーの処理の失敗に関する詳細情報: JSON (jQuery) で 500 エラーを処理する

これもチェックしてください: jquery ajaxは500ステータスエラーを無視します

于 2014-02-22T04:24:15.727 に答える
0

alert(xhr.responseText);関連するエラー メッセージを表示するには、を使用する必要があります。

于 2014-02-22T04:09:11.300 に答える