2011-05-24 8 views
6

मैं प्रलेखन पढ़ने की कोशिश कर रहा हूं और मुझे कबूल करना चाहिए कि यह एक आसान पठन नहीं है। प्रतिक्रिया टेक्स्ट पढ़ने के लिए मुझे कोई समस्या नहीं है (एक्सेस-कंट्रोल-ऑब्जेक्ट-हेडर हेडर जोड़ने के बाद), लेकिन फ़ायरफ़ॉक्स को छोड़कर कहीं भी प्रतिक्रिया शीर्षलेख प्राप्त करने में विफल।क्रॉस-डोमेन AJAX के माध्यम से मैं प्रतिक्रिया शीर्षलेख कैसे प्राप्त कर सकता हूं?

तो, मेरा प्रश्न है कि क्रॉस-डोमेन AJAX का उपयोग करके प्रतिक्रिया शीर्षलेख प्राप्त करने का सही तरीका क्या है?

मैंने (Access-Control-Expose-Headers) का उपयोग करने का प्रयास किया है, लेकिन फिर, हेडर पढ़ने में विफल रहा।

उत्तर

16

तो जिस तरह से इसे काम करना चाहिए वह यह है कि आप हेडर निर्दिष्ट करते हैं कि आप क्लाइंट को एक्सेस-कंट्रोल-एक्सपोज़-हेडर हेडर में एक्सेस करना चाहते हैं। उदाहरण के लिए, अपने सर्वर एक फू प्रतिक्रिया हेडर सेट, और आप ग्राहक इसे पढ़ने के लिए सक्षम होने के लिए चाहते हैं, तो अपने सर्वर भी निम्न हैडर भेजना चाहिए:

Access-Control-Expose-Headers: Foo 

ग्राहक पक्ष पर, आप पढ़ सकते हैं सब xhr.getAllResponseHeaders() को कॉल करके प्रतिक्रिया शीर्षलेख। यह एक स्ट्रिंग है, जो आप उसके बाद निम्न कोड का उपयोग कर एक वस्तु में पार्स कर सकते हैं के रूप में प्रतिक्रिया हेडर रिटर्न: https://gist.github.com/706839

कैसे चीजें काम करना चाहिए की एक विवरण है कि। हालांकि, ध्यान दें कि पुराने ब्राउज़र में एक बग है जहां प्रतिक्रिया शीर्षलेख क्लाइंट पर नहीं पढ़ा जा सकता है। अधिक जानकारी के लिए यहां देखें: CORS xmlhttprequest HEAD method

+0

हाय, मैंने सर्वर-साइड एपीआई में निम्न जोड़ा है। 'हेडर (एक्सेस-कंट्रोल-स्वीकृति-हेडर: अस्थायी'); '' हेडर ('एक्सेस-कंट्रोल-एक्सपोज़-हेडर: अस्थायी);' 'हेडर (' temp: '12345);' जब मैं कर्ल बना रहा हूं एपीआई के लिए अनुरोध, मुझे प्रतिक्रिया-डेटा के साथ शीर्षलेख मिलते हैं। लेकिन जब मैं एक ही एपीआई को AJAX कॉल कर रहा हूं, तो मुझे केवल हेडर के बिना डेटा मिलता है। –

+0

अनिश, आपकी टिप्पणी अपने स्वयं के स्टैक ओवरफ़्लो प्रश्न के रूप में अधिक उपयुक्त लगता है। – monsur

+0

क्या यह प्रश्न/उत्तर आज भी प्रासंगिक है। – refactor

1

मुझे एक ही समस्या थी, और क्रोमियम मेलिंग सूची पर इसका जवाब मिला कि यह वेबकिट में तय है, और इसे क्रोमियम ~ 1 9 में लागू किया जाएगा।

मैं विषय ढूंढने और अपना उत्तर अपडेट करने का प्रयास करूंगा।