首页 > 解决方案 > Node.js 重定向 GET 请求丢失 Origin 标头

问题描述

我的 Node.js 应用程序使用此函数将 GET 请求重定向到特定 URL:

function forwardGetRequest(req, res, url){
    res.redirect(url);
}

但是,当我将它与网页上的 JavaScript/AJAX 请求结合使用时,我收到以下错误:

Access-Control-Allow-Origin 不允许 Origin null

关于 CORS,我已经在我的应用程序中正确设置了我的域,但这里的问题是这个重定向不会转发headers 中的 Origin

为了证明这一点,当我直接从 AJAX 请求中向“url”发出请求时,而不是通过 Node.js 应用程序代理,在标头中正确设置了 Origin 并且我得到了正确的响应。

标签: node.jscorshttp-headers

解决方案


你可以试试下面的代码吗?

const http = require('http');

function forwardGetRequest(req, res, url){
    const baseUrl = "" // change port here
    var connector = http.request({
        host: baseUrl,
        path: req.url,
        method: req.method,
        headers: req.headers // don't forget to add headers
    }, (resp) => {
        // check resp here.
        resp.pipe(res);
    });
}

推荐阅读