2015-11-20 16 views
5

मैं निम्नलिखित कोड का उपयोग कर एक AngularJS अनुप्रयोग में हर अनुरोध करने के लिए एक कस्टम हेडर जोड़ने के लिए एक इंटरसेप्टर उपयोग करने के लिए कोशिश कर रहा हूँ:कस्टम हेडर AngularJS में जोड़ा केवल पर दिखाने पहुंच-नियंत्रण-अनुरोध-हेडर

angular.module('app').factory('httpRequestInterceptor', function() { 
    return { 
     request: function (config) { 
      config.headers['testheader'] = 'testheaderworks'; 

      return config; 
     } 
    }; 
}); 

angular.module('app').config(function ($httpProvider) {  
    $httpProvider.interceptors.push('httpRequestInterceptor'); 
}); 

यह

अनंतिम हेडर

012,351 दिखाए गए हैं: कोड जवाब से this question

दुर्भाग्य को कॉपी किया गया था, जब मैं जिसके परिणामस्वरूप अनुरोध की जांच, मैं निम्नलिखित मिल

पहुंच-नियंत्रण-अनुरोध-हेडर: स्वीकार करते हैं, testheader

पहुंच-नियंत्रण-अनुरोध-विधि: प्राप्त

मूल: http://localhost:61577

Referer: http://localhost:61577/

उपयोगकर्ता-एजेंट : मोज़िला/5.0 (विंडोज एनटी 6.1; WOW64) AppleWebKit/537.36 (KHTML, छिपकली) क्रोम/46.0.2490.86 सफारी की तरह/537,36

मैं क्रोम में और सर्वर साइड पर दोनों नेटवर्क टैब में इस बात की पुष्टि की। कस्टम हेडर कुंजी 'testheader' को में जोड़ा गया है सामान्य हेडर के बजाय एक्सेस-कंट्रोल-अनुरोध-हेडर क्यों? मूल्य के साथ क्या हुआ? क्या इस समस्या से बचने वाले प्रत्येक AngularJS अनुरोध में कस्टम शीर्षलेख जोड़ने का कोई और तरीका है?

+0

क्या आपने इस समस्या को हल किया है? – mzain

+0

@mzain हां, नीचे मेरा जवाब देखें। –

उत्तर

5

मामले में किसी को भी इस पढ़ता है और एक ही समस्या हो रही है:

समस्या यह है कि गया था कोणीय एक क्रॉस मूल अनुरोध है, जो ब्राउज़र को रोकने था बना रही थी। इस अनुरोध को सक्षम करने के लिए मुझे सर्वर की तरफ हेडर सक्षम करना पड़ा। हमारे मामले में (नोडजेएस) कोड करने के लिए यह कोड था:

app.use(function (req, res, next) { 
    res.header("Access-Control-Allow-Headers", testheader"); 
    next(); 
}); 
+1

आपने मेरा जीवन बचाया :) –

संबंधित मुद्दे