2010-11-12 13 views
6

मैं ऐसी परिस्थिति में घुस गया जिसे मुझे पहले कभी संबोधित नहीं करना पड़ा था। मेरे पास एक ग्राहक है जिसने यूआरएल को AJAX अनुरोध करने की आवश्यकता है। आंतरिक कारणों से, वह यूआरएल दूसरे यूआरएल पर रीडायरेक्ट करता है जिसका स्टेटस कोड एक्सेस किया जाना चाहिए। क्या इस प्रकार का बहु-अनुरोध परिदृश्य अजाक्स अनुरोधों द्वारा मूल रूप से संभाला गया है?अजाक्स रीडायरेक्शन हैंडलिंग

jQuery का उपयोग कर एक त्वरित परीक्षण 302 को संभालने लगता है, पुनर्निर्देशन करता है और लक्षित पृष्ठ की सामग्री लौटाता है (मुझे केवल उत्पादन में स्थिति कोड की आवश्यकता होगी, लेकिन सामग्री सही पृष्ठ "साबित" है पहुंचा जा रहा है), लेकिन मुझे कोई संकेत नहीं मिल रहा है कि मैं इसे सार्वभौमिक रूप से काम करने की उम्मीद कर सकता हूं। मुझे नहीं पता कि क्या, यदि कोई है, क्लाइंट क्लाइंट का उपयोग करेगा। इसके अलावा, अन्य क्लाइंट भविष्य में इस यूआरएल का उपयोग करने की संभावना रखते हैं और इसे उसी तरह संभालने की जरूरत है।

धन्यवाद।

उत्तर

10

यह सार्वभौमिक रूप से काम करने की उम्मीद कर सकता है, क्योंकि यह jQuery को हैंडलिंग नहीं कर रहा है। यह अंतर्निहित XmlHtpRequest ब्राउज़र ऑब्जेक्ट का निर्दिष्ट व्यवहार है जो सभी पुस्तकालय AJAX कॉल के लिए उपयोग करते हैं।

You can find the behavior specified here by the W3C:

तो URL स्थान हैडर से अवगत करा दिया की originXMLHttpRequest origin साथ same origin है और पुन: निर्देशन अनंत लूप सावधानियों का उल्लंघन नहीं करता, पारदर्शी रूप से पालन रीडायरेक्ट जबकि same-origin request event rules को देख।

मैं सबसे अधिक प्रासंगिक बिट यहाँ पर बल दिया गया है, जब तक कि यह same-origin policy नियमों का उल्लंघन नहीं करता है के रूप में (यह अपने ही डोमेन पर नहीं होना चाहिए), XmlHttpRequest अंतिम पृष्ठ की सामग्री मिल जाएगा यह करने के लिए रीडायरेक्ट कर दिया जाता । दूसरे शब्दों में, यह वह व्यवहार है जिसे आप अब jQuery के साथ देख रहे हैं ... यह सिर्फ jQuery नहीं कर रहा है।

+0

परफेक्ट, निक। यह _exactly_ है जो मैं सीखने की उम्मीद कर रहा था। –

0

यदि आप फायरबग देखते हैं, तो आप वास्तव में पुनर्निर्देशन को देख सकते हैं। मुझे लगता है कि आप सही हैं कि आप प्रत्येक ब्राउज़र के लिए इस पर निर्भर नहीं हो सकते हैं। लेकिन मेरा झुकाव यह होगा कि हाल के ब्राउज़र आपके लिए http कनेक्शन को संभाल लेंगे और रीडायरेक्ट करेंगे।

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