दिलचस्प पोस्ट
एक्लिप्स में जेबीस डिबगिंग जेपीए हाइबरनेट एक-से-एक संबंध सी # ऑटो-प्रॉपर्टी शुरू करना मानक C ++ में आप प्रत्येक फ़ाइल / निर्देशिका के द्वारा पुनरावृति कैसे करते हैं? प्रवेश के बिना एकल वर्ण कैसे प्राप्त करें? फाइल अपलोड करने के लिए एमवीसी में अजाक्स। बेनिफॉर्म PostgreSQL अनुक्रमणिका सरणी स्तंभ कर सकते हैं? क्या एक ओरेकल एसक्यूएल क्वेरी है जो एक पंक्ति में कई पंक्तियाँ एकत्र करती है? सीमा लंबाई को सीमित करने का कोई भी तरीका? MySQL में ROW_NUMBER () सीएसएस तालिका-सेल समान चौड़ाई यूनिक्स युग का समय जावा दिनांक वस्तु के लिए रेल का उत्पादन लॉग रोटेशन पर रूबी का उपयोग: – (कोलन डैश) में बाश मैं एक्सएमएल में एम्पर्सैंड से कैसे बच सकता हूं ताकि उन्हें एचटीएमएल में संस्थाओं के रूप में प्रस्तुत किया जाए?

जावास्क्रिप्ट में 302 फाउंडिंग को पकड़ना

मैं अपने सर्वर पर एक AJAX पोस्ट अनुरोध करने के लिए jQuery का उपयोग करता हूं, जो स्थिति 302 के साथ HTTP प्रतिक्रिया वापस कर सकता है। फिर जावास्क्रिप्ट इस यूआरएल को केवल अनुरोध भेजता है, जबकि मैं उपयोगकर्ता को इस प्रतिक्रिया में यूआरएल को रीडायरेक्ट करना चाहता हूं। क्या यह संभव है?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट में 302 फाउंडिंग को पकड़ना"

स्वीकृत उत्तर दिए गए कारणों के लिए काम नहीं करता है। मैंने एक प्रश्न के एक कड़ी के साथ एक टिप्पणी पोस्ट की जो कि एक हैक का वर्णन करता है कि ब्राउजर द्वारा पारदर्शी रूप से संभाला जा रहा 302 की समस्या को हल करने के लिए हैक:

एक jQuery अजाक्स कॉल के बाद एक रीडायरेक्ट अनुरोध का प्रबंधन कैसे करें

हालांकि, यह एक गंदे हैक का एक सा है और बहुत खुदाई के बाद मुझे लगता है कि मुझे क्या लगता है कि एक बेहतर समाधान है – JSON का उपयोग करें। इस मामले में, आप एजेक्स अनुरोधों के लिए सभी प्रतिक्रियाओं को 200 कोड और प्रतिक्रिया के शरीर में बना सकते हैं, आप कुछ प्रकार की जेएसएएन ऑब्जेक्ट जोड़ सकते हैं जो कि आपके एजेक्स रिस्पांस हैंडलर तब उचित तरीके से उपयोग कर सकते हैं।

मुझे ऐसा नहीं लगता। डब्ल्यू 3 सी का कहना है कि 302 सहित कुछ विशिष्ट स्थिति कोडों के साथ HTTP पुनर्निर्देशन पारदर्शी रूप से अनुसरण किया जाना चाहिए। नीचे दिए गए उद्धरण:

यदि प्रतिक्रिया एक HTTP रीडायरेक्ट (स्थिति कोड 301, 302, 303 या 307) है, तो इसे पारदर्शी रूप से पालन किया जाना चाहिए (जब तक कि वह सुरक्षा या अनंत लूप की चेतावनियों का उल्लंघन नहीं करता)। किसी भी अन्य त्रुटि (401 सहित) जरूरी है कि ऑब्जेक्ट प्रतिक्रिया पृष्ठ के रूप में उस त्रुटि पृष्ठ का उपयोग करे।

एक प्रयोग के रूप में, मैंने विभिन्न ब्राउज़रों (फ़ायरफ़ॉक्स 3.5, क्रोम, आईई 8, आईई 7, आई 6) से अजाक्स अनुरोध करने की कोशिश की, जिसमें 302 स्थिति कोड देने वाला सर्वर था और ब्राउज़र की अनुरोध ऑब्जेक्ट में स्थिति दिखा रहा था। हर मामले में, यह 200 के रूप में दिखाया

मेरी समस्या का कारण था:

मैं पृष्ठ का परीक्षण करने के लिए स्थानीयहोस्ट / होम / टेस्ट पते का उपयोग कर रहा था। लेकिन यूआरएल पैरामीटर के लिए 127.0.0.1/Home/AjaxRequest का उपयोग करते हुए एजेक्स अनुरोध कोड। जब यूआरएल अलग होते हैं तो यह त्रुटि होती है।

शायद यह किसी को मदद करता है 🙂

302 को संभालने के लिए जावास्क्रिप्ट कोड पूछने की बजाय, 302 की घटना पर कस्टम त्रुटि कोड + 500 के साथ 500 लौट जाना बेहतर होगा

function doAjaxCall() { $.ajaxSetup({complete: onRequestCompleted}); $.get(yourUrl,yourData,yourCallback); } function onRequestCompleted(xhr,textStatus) { if (xhr.status == 302) { location.href = xhr.getResponseHeader("Location"); } } 

सबसे अच्छा समाधान है:

किसी ऑब्जेक्ट उदाहरण की विशेषता के साथ चर सेट करें

 <html> · · <span url="http://www.google.com"></span> · · </html> $('.example').on('click', function(){ $url = $(this).attr('url'); $.get($url, function(data){ alert(data); }) }) 

यदि यूआरएल को जेएस में सीधे सेट किया गया है, आपको एक त्रुटि 302 मिलनी चाहिए, मुझे नहीं पता क्योंकि कारण यह त्रुटि होती है, लेकिन यदि आप एक विशेषता का यूआरएल प्राप्त करते हैं, तो यह त्रुटि नहीं है