node.js - 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 并且我得到了正确的响应。
解决方案
你可以试试下面的代码吗?
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);
});
}
推荐阅读
- php - 在php中搜索后的分页
- java - Twitter4J Android 搜索查询返回 Null
- webserver - 如何将数据发送到 Racket 服务器?
- c++ - 如何在 C++ 中保留一定数量的小数位(而不是有效数字)?
- python - 迭代合并
- android - 如何通过单击按钮将使用 Recycler Firestore Adapter 显示的 Cloud Firestore 中的所有项目添加到另一个数据库
- java - 使用杰克逊数据绑定序列化对象时出现 Java InvalidDefinitionException
- command-line - 如何在 ImageMagick 中批量调整图像大小,同时保持纵横比和最大宽度和高度?
- mysql - 在nodejs和mysql中发送后无法设置标头
- java - 如何获得一个按钮来运行片段中的功能?