ในฐานะของ 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ได้