http headers एक्सियोस को प्रतिक्रिया हेडर फ़ील्ड्स तक पहुँच मिलती है




http-headers es6-promise (3)

मैं React और Redux के साथ एक फ्रंटएंड ऐप बना रहा हूं और अपने अनुरोधों को करने के लिए मैं axios का उपयोग कर रहा हूं। मैं प्रतिक्रिया के शीर्ष लेख में सभी क्षेत्रों तक पहुँच प्राप्त करना चाहूंगा। अपने ब्राउज़र में मैं हेडर का निरीक्षण कर सकता हूं और मैं देख सकता हूं कि मुझे जिन क्षेत्रों की आवश्यकता है वे सभी मौजूद हैं (जैसे टोकन, यूआईडी, आदि ...), लेकिन जब मैं फोन करता हूं

const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
  console.log(response.headers);
});

मुझे बस मिलता है

Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}

यहां मेरा ब्राउज़र नेटवर्क टैब, जैसा कि आप देख सकते हैं कि सभी अन्य फ़ील्ड मौजूद हैं।

Bests।


इसने वास्तव में मेरी मदद की, आपके उत्तर के लिए Nick Uraltsev को धन्यवाद।

आप उन लोगों के लिए जो कॉर्ज के साथ नोडज का उपयोग कर रहे हैं :

...
const cors = require('cors');

const corsOptions = {
  exposedHeaders: 'Authorization',
};

app.use(cors(corsOptions));
...

मामले में आप res.header('Authorization', `Bearer ${token}`).send(); के तरीके से प्रतिक्रिया भेज रहे हैं res.header('Authorization', `Bearer ${token}`).send();


कोर अनुरोधों के मामले में, ब्राउज़र केवल डिफ़ॉल्ट रूप से निम्नलिखित प्रतिक्रिया हेडर का उपयोग कर सकते हैं:

  • कैश-नियंत्रण
  • सामग्री-भाषा
  • सामग्री प्रकार
  • समय-सीमा समाप्त
  • अंतिम बार संशोधित
  • pragma

यदि आप चाहते हैं कि आपका क्लाइंट ऐप अन्य हेडर का उपयोग करने में सक्षम हो, तो आपको सर्वर पर Access-Control-Expose-Headers हेडर्स हेडर सेट करना होगा:

Access-Control-Expose-Headers: Access-Token, Uid

मैं उसी समस्या का सामना कर रहा था। Y ने मेरे "WebSecurity.java" में यह किया है, यह cors कॉन्फ़िगरेशन में setExposedHeaders विधि के बारे में है।

@Bean
CorsConfigurationSource corsConfigurationSource() {

    CorsConfiguration configuration = new CorsConfiguration();
    configuration.setAllowCredentials(true);
    configuration.setAllowedOrigins(Arrays.asList(FRONT_END_SERVER));
    configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
    configuration.setAllowedHeaders(Arrays.asList("X-Requested-With","Origin","Content-Type","Accept","Authorization"));

    // This allow us to expose the headers
    configuration.setExposedHeaders(Arrays.asList("Access-Control-Allow-Headers", "Authorization, x-xsrf-token, Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, " +
            "Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"));

    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", configuration);
    return source;
}

मैं आशा करता हूँ यह काम करेगा।





axios