簡體   English   中英

無法在響應響應中獲取自定義標頭

[英]Unable to get custom headers in react response

我的前端運行在react + flux + node和后端運行在Java中。 我正在使用superagent將響應操作的請求發送到成功發生的后端,我正在嘗試從后端發送自定義標頭,這也正常工作並從后端發送到前端,我可以在瀏覽器網絡中看到(調試請求和響應)。但是,當我嘗試訪問反應動作中的標題時,我沒有看到它。有人請指導我如何處理這個?

我想要訪問的自定義標頭是X-Token但是我無法在反應動作中的superagent的響應中看到它。 反應動作功能如下:

login(payload) {
        request.post(someurl+'/login')
            .send({
                username: payload.userEmail,
                password: payload.userPassword
                })
            .set('Accept', 'application/json')
            .end(function(err, res){
                if (err || !res.ok) {

                } else {
                    console.log(res.headers) //it doesnt give x-token header.

                }
            });
    }
}

以下是我的服務器js內容:

var app = express();
app.options('*', cors());

app.set('port', process.env.PORT || 3001);
app.use(compression());
app.use(logger('dev'));
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

app.use(function (req, res, next) {
         // Website you wish to allow to connect
         res.setHeader('Access-Control-Allow-Origin', '*');

         // Request methods you wish to allow
         res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

         // Request headers you wish to allow
         res.setHeader("Access-Control-Allow-Headers", "X-Token,Origin,X-Requested-With,content-type");

         // Set to true if you need the website to include cookies in the requests sent
         // to the API (e.g. in case you use sessions)
         res.setHeader('Access-Control-Allow-Credentials', true);

         // Pass to next layer of middleware
         next();
     });


app.use(express.static(path.join(__dirname, 'public')));

app.engine('html', consolidate['swig']);
app.set('view engine', 'html');
app.set('views', './views');


 app.use(function(req, res) {
   Router.match({ routes: routes.default, location: req.url }, function(err, redirectLocation, renderProps) {
     if (err) {
       res.status(500).send(err.message)
     } else if (redirectLocation) {
       res.status(302).redirect(redirectLocation.pathname + redirectLocation.search)
     } else if (renderProps) {
       var html = ReactDOM.renderToString(React.createElement(Router.RoutingContext, renderProps));
       var page = swig.renderFile('views/index.html', { html: html });
       res.status(200).send(page);
     } else {
       res.status(404).send('Page Not Found')
     }
   });
 });

require('./app/routes/server-route')(app, express);
var server = require('http').createServer(app);


server.listen(app.get('port'), function() {
   console.log('Express server listening on port ' + app.get('port'));
});

先謝謝您的幫助。

你確定setHeader嗎?

快遞文檔 api for header是setHeaders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM