Hỏi về hàm ajax?

Hi mọi người, cho em hỏi về hàm ajax , thì có cách nào để khi lỗi thì nó xuất ra alert khi sai không ạ(nghĩa là cách thêm condition để khi condition đúng thì nó chỉ thực hiện đến success là dừng ?)? chứ của em như ở dưới đúng sai nó đều xuất ra alert cả? thanks mọi người :heart::heart::heart::

$.ajax({
  url: '/path/to/file',
  type: 'default GET (Other values: POST)',
  dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
  data: {param1: 'value1'},
success:function{},
error:function{}
})

.done(function() {
  console.log("success");
})

.fail(function() {
  console.log("error");
alert('Lỗi!')
})

.always(function() {
  console.log("complete");
});

Bên JavaScript không biết bên PHP xử lý sai hay đúng đâu nhé. Các mã lỗi của nó khác với mã lỗi HTTP, do đó nếu bên PHP mà không phải 404 thì bên JavaScript chỗ Ajax vẫn là success như thường. Cho nên, tốt hơn hết là bạn đón bắt data trả về có từ/ cụm từ nào đó do bên PHP trả về rồi căn cứ vào cụm từ đó để mà alert.

Muốn tới success dừng thì bỏ đoạn .fail trở xuống là xong :smiley:

3 Likes

.always thì nó như finally rồi luôn được chạy. còn backend là php thì bạn dùng header để response code khác 200 thì nó sẽ nhảy vào .fail() còn ko thì sẽ vào .done() , nếu ko set response code thì luôn vào .done() ngoại trừ khi url 404 hoặc server response 400/503/500

1 Like

Xử lý kết quả trả về trong success:function(res), “res” là kết quả trả về từ php

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?