2013-06-11 13 views
61

मैं $http उपयोग कर रहा हूँ एक API कॉल जो X-Foo जैसे कुछ कस्टम हेडर भेज रहा है की $ http का उपयोग कर प्रतिक्रिया हेडर पढ़ना। हालांकि मैं अभी तक यह नहीं समझ सकता कि उन्हें कैसे पढ़ा जाए। $http({...}).success(function (data, status, headers, config) {...}) समारोह के अंदर, headers एक समारोह है कि मुझे सभी हेडर के हैश देना चाहिए है लेकिन यह केवल शीर्ष लेख content-type को दर्शाता है। क्या प्रतिक्रिया शीर्षलेख प्राप्त करने का कोई तरीका है?जब AngularJS

+0

आप Firefox का उपयोग कर रहे हैं? Http://stackoverflow.com/questions/14188662/angularjs-and-apiary-io-cant-read-any-response-headers देखें। –

+0

नहीं, क्रोम। क्रोम के लिए एफएफ विशिष्ट फिक्स काम करता है? –

+2

क्या एक अलग डोमेन या एक ही डोमेन में अनुरोध किए जा रहे हैं? मैंने उसी डोमेन पर अनुरोध भेजने का परीक्षण किया और मैं कस्टम हेडर देखने में सक्षम हूं। –

उत्तर

144

कस्टम हेडर एक ही डोमेन में दिखाई जाएगी। हालांकि, क्रॉसडोमेन की स्थिति के लिए, सर्वर को कस्टम हेडर दिखाई देने के लिए Access-Control-Expose-Headers: X-Foo, ... शीर्षलेख भेजना होगा।

+7

धन्यवाद! आपने मेरी रात – JRun

+3

सहेजी है ऐसा प्रतीत होता है कि आपको वाइल्डकार्ड के बजाय वास्तविक शीर्षलेख नाम निर्दिष्ट करना होगा। 'एक्सेस-कंट्रोल-एक्सपोज़-हेडर: * 'काम नहीं करता है, लेकिन' एक्सेस-कंट्रोल-एक्सपोज़-हेडर: इटाग 'करता है। इस –

+6

कोणीय के साथ मेरे लिए काम नहीं लगता था '$ http' – chovy

0

स्प्रिंग 4.0+ @CrossOrigin एनोटेशन प्रदान मापदंडों

  1. मूल = कॉमा की सूची मूल अलग निम्नलिखित गया है।
  2. खुलासा हेडर = सूची की अलग-अलग गिनती कस्टम पैरामीटर की सूची।

उदाहरण

@CrossOrigin(origins = "*", exposedHeaders ="X-Total-Count")