2015-05-15 32 views
5

में $ http प्रतिक्रिया के भीतर 'डब्ल्यूडब्ल्यूडब्ल्यू-प्रमाणीकृत' शीर्षलेख तक नहीं पहुंच सकता है क्या कोई मुझे बता सकता है कि मेरा 'डब्ल्यूडब्ल्यूडब्लू-प्रमाणीकरण' हेडर प्रतिक्रिया में शून्य क्यों है, हालांकि मैं स्ट्रिंगफाइड 'डब्ल्यूडब्ल्यूडब्लू-प्रमाणीकरण' हेडर ऑब्जेक्ट देख सकता हूं क्रोम देव उपकरण में?कोणीय

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); 
res.setHeader('Access-Control-Expose-Headers', 'WWW-Authenticate'); 
res.setHeader('WWW-Authenticate', JSON.stringify({ 
    "token": "encryptedToken", 
    "message": "encryptedMessage" 
})); 

मुझे विश्वास है कि मैं सर्वर पर सही ढंग से शीर्ष लेख की स्थापना कर रहा हूँ:

सर्वर साइड पर मैं भी मेरी WWW-प्रमाणित शीर्ष लेख सेट करने के लिए निम्न CORS के लिए उचित हेडर सेट के रूप में कर रहा हूँ पक्ष, क्योंकि जब मैं क्रोम देव उपकरण को देखता हूं, तो मुझे अनुरोध के लिए "प्रतिक्रिया शीर्षलेख" के तहत निम्नलिखित दिखाई देता है।

प्रतिक्रिया हेडर
पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति: http://localhost:8080
पहुंच-नियंत्रण-बेनकाब-हेडर: WWW-प्रमाणित
कनेक्शन: जीवित-रखें
दिनांक : शुक्र, 15 मई 2015 13:48:29 GMT
ETag: डब्ल्यू/"एफ 7-1470611871"
WWW-प्रमाणित: { "टोकन": "encryptedToken", "message": "encryptedMessage"}
एक्स संचालित-से: एक्सप्रेस

हालांकि, जब मैं तक पहुँचने का प्रयास प्रतिक्रिया के भीतर से "डब्ल्यूडब्ल्यूडब्ल्यू-प्रमाणीकरण" शीर्षलेख, मुझे पूरा मिलता है।

$http.get("http://localhost:4242/days") 
.then(function (response) { 
    var AuthHeader = response.headers('WWW-Authenticate'); 
    console.log (AuthHeader); // returns null 
}) 

अग्रिम में आपकी सहायता के लिए धन्यवाद!

+0

संपूर्ण प्रतिक्रिया ऑब्जेक्ट – charlietfl

+0

प्रतिक्रिया ऑब्जेक्ट लॉगिंग करने का प्रयास करें --- {डेटा: ऐरे [7], स्थिति: 200, शीर्षलेख: फ़ंक्शन, कॉन्फ़िगरेशन: ऑब्जेक्ट, स्टेटस टेक्स्ट: "ओके"} –

+0

नहीं, मैं एक्सेस करना चाहता हूं 'डब्ल्यूडब्ल्यूडब्लू-प्रमाणीकरण' हेडर ऑब्जेक्ट (अभी भी स्ट्रिंग किया गया), लेकिन प्रतिक्रिया।हेडर फ़ंक्शन शून्य को वापस रखता रहता है भले ही मैं देव उपकरण में ऑब्जेक्ट देख सकूं। –

उत्तर

1

ठीक है ... तो कुछ परीक्षण और त्रुटि के बाद हमने इसे समझ लिया है। हालांकि मैं पूर्व-लंबित एक्स-कस्टम हेडर के लिए पुराना और अनावश्यक प्रतिक्रियाशील था, हालांकि ऐसा प्रतीत होता है कि या तो इस मामले में ब्राउज़र का इस्तेमाल किया जा रहा है या शायद कोणीय ही इसकी उम्मीद कर रहा है।

से हैडर नाम बदलने से:

WWW-authenticate 

X-WWW-authenticate 

के लिए इस मुद्दे का समाधान करता है। अगर कोई इस पर कोई प्रकाश डाल सकता है तो कृपया करें।

वास्तव में, यहां पहले उत्तर का संदर्भ दिया गया है: Custom HTTP headers : naming conventions एक्स- का उपयोग बहिष्कृत कर दिया गया है और वास्तव में हेडर को 'समझदारी से नामित' होना चाहिए किसी भी उपसर्ग को। शायद नामकरण पर विचार करें:

appName-authenticate 

या सर्वोत्तम अभ्यास के समान।