我正在设置本地代理以将特定URL重定向到另一台服务器,我正在运行我的Express JS服务器作为我的主服务器,我有另一台服务器在不同的端口上运行...我的Express JS配置如下

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const path = require('path');

const app = express();
const PORT = process.env.PORT || 8080;
const API_URL = "<http://localhost:8989>";

app.get("/status", (req, res, next) => {
    res.send('This is a proxy service');
});

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname, '/dist/index.html'));
});
app.use(express.static('dist'))

const proxyOptions = {
    target: API_URL,
    changeOrigin: true
}

const proxy = createProxyMiddleware(proxyOptions);

app.use('/?access', proxy)

app.listen(PORT, () => {
    console.log(`Proxy Started at http://localhost:${PORT}`)
});

我希望任何以/?access开头的URL重定向到另一个服务器localhost:8989,但保持/?access...完好无损,以便它可以将该信息提交到新服务器.有没有人看到我做错了什么?

我正在使用FETCH发送我需要的信息

fetch('/?access=myAccessToken&action=off')

同样值得注意的是,我在浏览器控制台中得到了304.

我设法按照ExpressJS文档配置了app.use('/?access', proxy),还参考了http-Proxy-Midleware文档,并try 了快速使用Google来帮助解决这个问题,但没有任何帮助.

我try 将URL添加到标准链接(Href),但仍然收到相同的问题.

<a href="/?access=myAccessToken&action=off">Click Me</a>

推荐答案

Edit:为了清楚起见.

当你写下这封信时:

app.use('/?access'

URL中的?将告诉Express匹配该路由

/access

这不是字面上的?.

但在您的前端代码中,您使用它表示query parameter,因此您的链接:

<a href="/?access=myAccessToken&action=off">Click Me</a>

将被路由到/路径,查询参数键为access.因此,它只会被端口8080上的/路由处理程序拾取,而不会被代理.例如:

http://localhost:8080/?access=myAccessToken&action=off

我认为帮助您实现所需结果的方法是将您的代理路径设置为类似于/auth的简单路径,然后如下所示:

app.use('/auth', proxy)

现在,当您导航到以下位置时:

<a href="/auth?access=myAccessToken&action=off">Click Me</a>

该请求将被代理到:

http://localhost:8989/auth?access=myAccessToken&action=off

Javascript相关问答推荐

D3多线图显示1线而不是3线

react/redux中的formData在expressjs中返回未定义的req.params.id

格式值未保存在redux持久切片中

如何解决chrome—extension代码中的错误,它会实时覆盖google—meet的面部图像?'

按下同意按钮与 puppeteer 师

自定义高图中的x轴标签序列

在286之后恢复轮询

如何将Cookie从服务器发送到用户浏览器

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

在浏览器中触发插入事件时检索编码值的能力

当输入字段无效时,我的应用程序不会返回错误

为什么我的自定义元素没有被垃圾回收?

按什么顺序接收`storage`事件?

如何使本地html页面在重新加载时保持当前可隐藏部分的打开状态?

有没有办法通过使用不同数组中的值进行排序

在没有任何悬停或其他触发的情况下连续交换图像

表单数据中未定义的数组键

JavaScript:多个图像错误处理程序

使用Library chart.js在一个带有两个y轴的图表中绘制两个数据集

输入数据覆盖JSON文件