2011-11-08 11 views
13

एक पृष्ठ (URL), मैं इसे XMLHttpRequest से अनुरोध करता है, लेकिन मैं अनुरोध किया गया URL से प्रतिक्रिया, यह एक पृष्ठ पर अनुरोध निर्देशन हैXMLHttpRequest में प्रतिक्रिया url कैसे प्राप्त करें?

का अनुरोध> नहीं मिल रहा है --- page.php
>directpage.php

और प्रतिक्रिया यह है कि मैं प्रतिक्रिया यूआरएल कैसे प्राप्त कर सकता हूं? (examplepage.php उदाहरण में)

उत्तर

24

अंतिम यूआरएल (सभी रीडायरेक्ट का पालन करने के बाद) XMLHttpRequest उदाहरण के responseURL attribute में उपलब्ध है। यह सुविधा नए और केवल अगस्त में सितंबर 2014 [ref] और क्रोम 37.0.2031.0 स्थिर में फ़ायरफ़ॉक्स 32 स्थिर में समर्थित है 2014 [ref] (और शायद यह भी ओपेरा 24)। responseURL आईई 11 या सफारी 7 और पुराने ब्राउज़र में समर्थित नहीं है (अभी तक)। इन ब्राउज़रों के लिए, पिछले जवाब अभी भी सत्य है:

XMLHttpRequest स्वचालित रूप से एक संपत्ति में सेवा की यूआरएल को बिना सहेजे, रीडायरेक्ट इस प्रकार है। Location शीर्षलेख को .getResponseHeader() के माध्यम से न तो पुनर्प्राप्त किया जा सकता है।

संदर्भ:

+0

ठीक है, लेकिन, किसी को पता है क्यों? सुरक्षा? प्रतिक्रिया यूआरएल के साथ कौन सा हमला उपलब्ध होना चाहिए? (केवल प्रतिक्रिया यूआरएल देना अगर प्रतिक्रिया यूआरएल मूल यूआरएल की तुलना में एक ही उत्पत्ति में है) –

+0

@ जुलिएनपालार्ड [विनिर्देश] (http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send() -method) मांग करता है कि रीडायरेक्ट को पारदर्शी रूप से पालन किया जाना चाहिए। –

+0

@RobW: मुझे समझ में नहीं आता है, अगर मेरे पास यह 'ए = 302-बी = 302-> सी = 302-> ए = 200' है। क्या answerURL वापस आ जाएगा? सी या ए के?? – user2284570