【问题标题】:how to send headers in response nodejs如何在响应nodejs中发送标头
【发布时间】:2018-10-03 12:27:55
【问题描述】:

我正在尝试在响应值中发送headers 字段,如下所示:

var express = require('express');
var cors = require('cors');
var bodyParser = require('body-parser');

var app = express();

app.use(cors({
    'allowedHeaders': ['sessionId', 'Content-Type'],
    'exposedHeaders': ['sessionId'],
    'origin': '*',
    'methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
    'preflightContinue': false
  }));

app.use('/', function(req, res){
        var data = {
          success: true,
          message: "Login success"
        };
        res.setHeader('custom_header_name', 'abcde');
        res.status(200).json(data);
});

app.listen(3000, () => console.log('Example app listening on port 3000!'))

当我尝试在$httpfetch 内部调用时,问题是headers 的值变为undefined。请让我知道我错过了什么?

获取

fetch('http://localhost:3000').then(function(response) {
  console.log(JSON.stringify(response)); // returns a Headers{} object
})

$http

$http({
    method: 'GET',
    url: 'http://localhost:3000/'
}).success(function(data, status, headers, config) {
    console.log('header');
    console.log(JSON.stringify(headers));
}).error(function(msg, code) {

});

【问题讨论】:

    标签: node.js angularjs fetch-api


    【解决方案1】:

    您必须使用headers.get 来检索特定标头的值。 headers 对象是一个可迭代对象,您可以使用for..of 打印其所有条目。

    fetch('http://localhost:3000').then(function(response) {
    
        // response.headers.custom_header_name => undefined
        console.log(response.headers.get('custom_header_name')); // abcde
    
        // for(... of response.headers.entries())
        for(const [key, value] of response.headers) {
            console.log(`${key}: ${value}`);
        }
    })
    

    实现 Headers 的对象可以直接用于 for...of 结构,而不是 entries(): for (var p of myHeaders) 是 相当于 for (var p of myHeaders.entries())。

    查看the docs了解更多信息。


    工作示例

    fetch('https://developer.mozilla.org/en-US/docs/Web/API/Headers').then(function(response) {
    
        console.log(response.headers.get('Content-Type')); // Case insensitive
    
        for(const [key, value] of response.headers) {
            console.log(`${key}: ${value}`);
        }
    })

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2017-08-01
      • 2021-12-11
      • 2018-06-08
      • 2014-08-23
      • 1970-01-01
      相关资源
      最近更新 更多