【问题标题】:Axios can't set headers after they are sentaxios发送后无法设置headers
【发布时间】:2017-10-04 19:23:21
【问题描述】:

我正在尝试在节点中使用 Axios,就像我会使用 CURL 之类的东西一样。我正在向我的节点端点发出 api 请求。然后我使用 Axios 向 Spotify 发出请求以执行一些 OAuth 操作。我成功地从 Axios 请求中获得了响应,但是当我尝试在 Express 中返回响应时,我被告知标头已经发送。以下是我为隔离问题而设置的测试。这会给出错误“发送后无法设置标头”。

makeRequest: function(req, res, next) {

    axios.get('https://google.com')
        .then(function(){
            res.status(200).send({});
        });
}

这可以吗?谢谢。

【问题讨论】:

    标签: node.js axios


    【解决方案1】:

    我认为因为我正在修改每个请求的标头,所以会导致一些问题,例如

     res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH');
    

    我为使用 Axios 的请求使用了不同的路由器,现在它可以正常工作了。比如:

    app.use('/api', apiRouter);
    app.use('/callback', axiosRouter);
    
    apiRouter.use(function(req, res, next) {
        res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH');
    }
    
    //I don't modify the axiosRouter headers
    

    【讨论】:

    • 我不确定你在说什么,但你不应该在发送响应后设置标题。
    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2020-05-30
    • 2013-04-06
    • 2017-09-23
    相关资源
    最近更新 更多