При возникновении ошибки моя страница перенаправляется на другую страницу без отображения сообщения об ошибке.Как решить проблему перенаправления страницы jquery?
Есть ли способ, чтобы написать e.preventDefault()
; внутри ajax ошибка function()
? или каким-либо другим способом остановить переадресацию страницы на другую страницу при возникновении ошибки?
я не могу в состоянии объявить e.preventDefault()
; глобально, так как при успешном выполнении я делаю рендеринг страницы на другой странице с контроллера.
Это мой Аякса код:
$('#request').on("submit", function(e) {
$(e.currentTarget).find("div.error").hide();
var _data = $(e.currentTarget).serialize();
var obj = $("#track_request").val();
if(obj == ""){
$("#track").text("Enter Request Number.");
$("#track").fadeIn(1000);
setTimeout(function() {
$("#track").fadeOut(1000);
}, 2000);
e.preventDefault();
}
$.ajax({
type: "POST" ,
url: "/track",
data: _data,
success: function(data) {
},
error: function(xhr, textStatus, errorThrown, event) {
if(obj != "" && xhr.status == 500){
$("#track").text("Enter Valid Request Number.");
$("#track").fadeIn(1000);
setTimeout(function() {
$("#track").fadeOut(1000);
}, 3000);
}
},
});
});
Если вы используете AJAX для представить, почему бы не иметь 'e.preventDefault();' в самой первой строке этой функции? – DevlshOne
Я не понимаю. У вас нет 'e.preventDefault();' вообще. Поэтому, когда вы запускаете отправку (например, нажав кнопку submit), она будет перенаправлять вас в любом случае. – nbar