2017-07-20 25 views
0

我正在一個HTML應用程序,其中有一種形式。點擊提交按鈕,我使用jquery.ajax()進行服務器端調用。但是,無論何時從服務器返回異常(如Status Code 500),我都需要在同一頁面上顯示錯誤消息。但是,它會在遇到錯誤時自動重定向。我試着用jquery.ajax()的statusCode設置是這樣的:表單重定向JQuery的Ajax

$.ajax(
{ 
    method: 'GET', 
    url: 'my url', 
    //... 
    successCode: { 
     500: function(response) { 
      alert(response.getResponseHeader("xyz")); 
      $('some_selector').show(); 
     } 
    }, 
    success: function(){}, 
    error: function(){} 
    //... 
}) 

但這似乎並沒有工作。它將我重定向到動作鏈接並顯示JSON錯誤,我無法想象阻止此重定向的方法。任何幫助,將不勝感激。

感謝

回答

0

好像你的Ajax選項Ajax調用之外把你裏面的參數一樣
$.ajax(){options} =>$.ajax({options})

試試這個,

$.ajax({url: 'your url', 
     type: 'GET', 
     success: function (response) { 
      //succesfull request 

     } 
    }).fail(function (response) { 
     //failed request 
    }); 

你應該能夠找到失敗中的狀態碼使用response.status

我認爲你的提交按鈕正在觸發重定向。嘗試添加

$("#myform").submit(function(event){ 
     event.preventDefault(); 
}); 

防止重定向

+0

慚愧是通話中,我把它放在了錯誤的方式在這裏。 event.preventDefault不起作用 此外,代碼不會進入服務器端錯誤的成功功能 –

+0

否它會進入失敗功能,因爲請求因服務器端錯誤而失敗。 – Mike