1

作業: ASP.NET MVC 3、JavaScript、jQuery。web.config ファイルは、HTTP 404 エラーを処理するように設定されています。具体的には、www.mysite.com/INVALIDURL のような無効な URL (つまり、404 ページが見つからない) に対して適切なリダイレクトを提供します。

質問: Ajax エラー内で同じ動作をデフォルトにする方法はありますか? 言い換えれば、ajax エラー内で 404 'Page not found' 応答をスローするにはどうすればよいですか。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     // throw 404 Page not found HTTP error
  }

Edit1:私が探している最終結果は、Ajaxエラー時に「ページが見つかりません」という表示を提供することです

Edit2: web.config ファイル内にリダイレクト設定が既にあります

  <system.webServer>
    <httpErrors errorMode="Custom">
      <remove statusCode="404" />
      <error statusCode="404" path="/error/404" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>

ajax.error をデフォルトでその動作にしたいのですが、可能ですか?

4

2 に答える 2

0

だから-あなたはajaxエラーで404ページにリダイレクトしたいですか?前述のように、404をスローすることはできませんが、別のページにリダイレクトすることはできます。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     window.location.href = '/My404ErrorPage';
  }

編集

URLを変更したくない場合は、モーダルダイアログ/アラートボックス/特別なdivを使用してこの情報をユーザーに伝え、使用するメッセージをその中に配置することを検討する必要があります。以下では、NotFoundがページ上のdivのIDであり、最初の部分ではjquery UIを利用し、2番目の部分ではプレーンな古いアラートボックスを利用していると想定しています。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     $('#NotFound').html('Some error message');
     $('#NotFound').Dialog();
     //OR you could do
     alert('Some error message');
  }
于 2012-07-26T22:44:33.470 に答える
0

「ajaxSetup」でエラーページへのjsリダイレクトを設定してみてください。例えば:

$.ajaxSetup({
    beforeSend  : function(){showLoader()},
    complete    : function(){hideLoader()},
    error       : function(){redirTo404()}
});

したがって、これをすべての ajax 呼び出しのデフォルトとして使用します

于 2012-07-26T22:49:49.227 に答える