ในฐานะของ jQuery 1.5 ทั้งหมดของ jQuery AJAX วิธีการส่งคืนjqXHR
วัตถุที่ให้.error()
, .success()
และ.complete()
วิธีการ
อะไรคือความแตกต่างระหว่าง.success()
และ.complete()
?
ในฐานะของ jQuery 1.5 ทั้งหมดของ jQuery AJAX วิธีการส่งคืนjqXHR
วัตถุที่ให้.error()
, .success()
และ.complete()
วิธีการ
อะไรคือความแตกต่างระหว่าง.success()
และ.complete()
?
คำตอบ:
.success()
จะถูกเรียกก็ต่อเมื่อเว็บเซิร์ฟเวอร์ของคุณตอบสนองด้วย200 OK
ส่วนหัว HTTP - โดยทั่วไปเมื่อทุกอย่างเรียบร้อยดี
อย่างไรก็ตาม.complete()
จะถูกเรียกเสมอไม่ว่าการโทรของ ajax จะประสบความสำเร็จหรือไม่ก็ตาม - บางทีอาจเกิดข้อผิดพลาดและส่งคืนข้อผิดพลาด - .complete () จะยังคงถูกเรียก
เป็นมูลค่าการกล่าวขวัญที่.complete()
จะถูกเรียกหลังจาก .success()
ถูกเรียก - ถ้ามันสำคัญกับคุณ
success()
ถูกเรียกเมื่อเซิร์ฟเวอร์ส่งคืนรหัสสถานะ 200 complete()
เรียกว่าเสมอเมื่อคำขอเสร็จสมบูรณ์ไม่ว่าผลลัพธ์จะเป็นอย่างไร
success()
เรียกว่าเมื่อเซิร์ฟเวอร์ผลตอบแทน200รหัสสถานะเรียกว่าหลังจากcomplete()
success()
และฉันเห็นความแตกต่าง:
ในวันที่success()
คุณไม่ได้รับการตอบสนองสตริง XML ที่คุณจะได้รับใช้$.ajax()
และชุดdataType:xml
แต่ในcomplete()
คุณจะได้รับรูปแบบสตริงของเอกสาร XML Readed ใช้
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()
จะถูกเรียกเมื่อผลตอบแทนเซิร์ฟเวอร์success status code
เช่น: 200
, 201
ฯลฯ
complete()
จะถูกเรียกเสมอเมื่อคำขอเสร็จสมบูรณ์ (ไม่ว่าจะเป็นความสำเร็จ / การตอบสนองข้อผิดพลาดจากเซิร์ฟเวอร์)
success
ตอบสนองจากเซิร์ฟเวอร์: complete()
และsuccess()
ถูกเรียกerror
ตอบสนองจากเซิร์ฟเวอร์: complete()
และerror()
ถูกเรียกเพื่อจุดประสงค์ใดที่คุณสามารถใช้ได้complete()
: สมมติว่าbeforeSend()
คุณแสดง a loader image
และcomplete()
คุณสามารถซ่อนสิ่งนั้นloader image
ได้