का उपयोग करके रीडायरेक्ट किया गया है, मैं अपने वेब एप्लिकेशन में पीआरजी (पोस्ट-रीडायरेक्ट-गेट) पैटर्न का पालन कर रहा हूं, और मेरे अधिकांश पोस्ट करने के लिए निम्न की तरह कुछ उपयोग करता हूं:एक पोस्ट के बाद वास्तविक यूआरएल प्राप्त करना जो jquery .ajax()
$.ajax({
type: 'POST',
url: 'A.html',
data: '....',
statusCode: {
302: function() {
alert("302"); // this is never called
},
200: function() {
alert("200");
},
},
success: function (data, textstatus) {
alert('You are now at URL: ' + ??);
},
error: function (data) {
},
complete: function (jqXHR, textstatus) {
alert('You are now at URL: ' + ??);
},
});
किसी भी पुनर्निर्देशन के बाद मुझे URL प्राप्त करने की आवश्यकता है, यानी अंतिम GET का URL जिसे .ajax() फ़ंक्शन कहा जाता है। उदाहरण के लिए A.html पर एक पोस्ट या तो B.html या C.html पर रीडायरेक्ट हो सकता है (हमेशा 302 के माध्यम से)। मैं अंतिम यूआरएल कैसे प्राप्त करूं?
मैं jquery 1.5.1 का उपयोग कर रहा हूं, और प्रॉक्सी का उपयोग करके देखा गया है कि jquery रीडायरेक्ट के बाद चुपचाप है - जिसे मैं खुश हूं। मुझे 302 के साथ जवाब देने वाले किसी भी यूआरएल की परवाह नहीं है - मैं उस समय अंतिम अनुरोध के यूआरएल को जानना चाहूंगा .ajax() की "सफलता:" या "पूर्ण:" हुक निकाल दिए जाते हैं।
में वर्तमान URL का उपयोग कर सकते डेटा के साथ कि यूआरएल भेजने के लिए और पुनः प्राप्त AJAX – diEcho
के 'सफलता' भाग में आप उदाहरण के साथ विस्तृत कर सकते हैं और कृपया निर्दिष्ट करें कि नेस्टेड रीडायरेक्ट हो रहा है या नहीं। उदाहरण के साथ इसे विस्तृत करें - उदाहरण के लिए A.html को एक पोस्ट या तो B.html या C.html (हमेशा 302 के माध्यम से) पर रीडायरेक्ट कर सकता है। मैं अंतिम यूआरएल कैसे प्राप्त करूं? –
मैंने प्रॉक्सी का उपयोग करके पुष्टि की है कि AST को पोस्ट "302 मिला" और स्थान: B.html के साथ प्रतिक्रिया देता है। हालांकि समस्या का क्रूक्स यह है कि मैं किसी भी सबूत प्राप्त करने के लिए जावास्क्रिप्ट/jquery से पूछताछ नहीं कर सकता कि मुझे कहीं भी B.html पर रीडायरेक्ट किया गया था। अगर मैं $ (यह) पूछता हूं। Url मुझे "A.html" मिलता है, विंडो.लोकेशन इत्यादि के लिए। –