0

すべての中間層コントローラー アクションに asp.net MVC 2 Web アプリケーションがあります。すべての例外をキャッチし、ログに記録してから、例外を再スローします。この再スローは、JQuery Ajax エラー ハンドラーによって取得されます。

throw new Exception(e.Message);

このようにJQueryを介してajax呼び出しを行っています

jQuery.ajax({ url: '/controller/action', 
 success: function(data) {  }, 
 error: function(jqXHR, textStatus, errorThrown) {     
    var error_json = JSON.parse(jqXHR.responseText);  // this is returning error
    var html_error = error_json["Message"]; 
 } 
});

そして、何らかの理由で jqXHR.responseText が何も返さなくなり、responseText の解析時にエラーが発生します。最近新しい Web サーバーに切り替えたので、IIS の設定かもしれません。** Firebug を調べると、通常の JSON 応答はもうありません。サーバーの応答が 500 例外として表示されます **

4

2 に答える 2

0

これをweb.configに追加してみてください。return JsonResult AND statusCode = 500 AND errorMode != Details の場合、返される json の responseText は、json 文字列ではなく、html コードの「Internal Server Error」になります。

<system.webServer>
    <httpErrors errorMode="Detailed" />
</system.webServer>
于 2018-06-22T17:38:04.563 に答える