2012-06-22 13 views
8

मेरे पास एक jQuery AJAX पोस्ट अनुरोध है जो अप्रत्याशित रूप से success के बजाय error कॉलबैक ट्रिगर कर रहा है। मेरे पास एक यादृच्छिक संदेह है जो 302 स्टेटस कोड प्राप्त कर रहा है, हालांकि यह गलत हो सकता है।jQuery.ajax क्या प्रतिक्रियाएं "सफलता" मानते हैं?

मैं the documentation को देखा है, लेकिन मुझे लगता है कि एक बात की तरह एक सा स्पष्ट नहीं है: एक सफल अनुरोध के jQuery के परिभाषा क्या है?

+0

मुझे लगता है कि जब में परिवर्तित नहीं किया जा सकता है HTTP 200 प्रतिक्रिया है। – jcubic

+1

यदि यह मूल रूप से 4xx/5xx कोड नहीं है। 3xx इसे केवल रीडायरेक्ट का पालन करना चाहिए, फिर नए यूआरएल रिटर्न कोड के साथ काम करना चाहिए, 2xx का अर्थ है http सफलता। –

+0

मैं पतली 2xx और 3xx प्रतिक्रियाएं सफल हैं। लेकिन इसे स्वीकार नहीं कर सकता। –

उत्तर

6

यदि प्रतिक्रिया 199 और 300 (> = 200 और < 300) के बीच है या 304 के बराबर है और प्रतिक्रिया टेक्स्ट को सफलतापूर्वक डेटा में परिवर्तित किया जा सकता है जो आप प्रदान करते हैं (डिफ़ॉल्ट रूप से टेक्स्ट), इसे एक सफल अनुरोध माना जाता है।

उदाहरण के लिए, यदि आप JSON लौट सकते हैं और आप एक 200 प्रतिक्रिया का दर्जा मिल लेकिन यह विफल रहता है, तो संभव है एक JSON पार्सर समस्या से भी अधिक है आपके JSON अर्थ मान्य नहीं है।

आप HTML या XML लौट रहे हैं और यह एक 200 प्रतिक्रिया की स्थिति के साथ विफल रहता है, responseText HTML या XML क्रमशः (आमतौर पर अवैध html/xml के साथ IE में होता है)

+0

मैंने इसका परीक्षण किया, और एक त्रुटि में 302 परिणामों का एक सादा स्थिति कोड। एजेक्स अनुरोधों को हमेशा 200 के लिए सकारात्मक प्रतिक्रियाओं के लिए सादगी के लिए यह शायद सबसे अच्छा है। –

+1

बहुत उपयोगी! मैंने सही कोड देखा, दृढ़ संकल्प [किया गया] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L655) आंतरिक कॉलबैक विधि के भीतर होता है। विशेष रूप से: [स्थिति कोड की जांच] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L683), [प्रतिक्रिया पार्स जांच] (https://github.com/jquery/jquery /blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L721) – pimlottc

संबंधित मुद्दे