node.js - 使用 Angular CLI 反向代理 API Gateway/lambda 中的服务
问题描述
我正在尝试使用proxy.conf.json
API 网关后面的 lambda 反向代理 Angular。
{
"/api/profile/*": {
"target": "http://asdasdfsdf.execute-api.ap-southeast-2.amazonaws.com",
"secure": false,
"logLevel": "debug",
"changeOrigin": false,
"headers": {
"host":"asdasdfsdf.execute-api.ap-southeast-2.amazonaws.com"
},
"pathRewrite": {
"^/api/profile": "/dev/profile"
}
},
}
host
我认为标题有问题。
如果我现在打这个,我会得到未经授权的
但是,当我在邮递员中明确添加主机标头时,它可以工作。
解决方案
我使用了该bypass
选项。
要使用它,我们必须将 更改proxy.conf.json
为proxy.conf.js
。检查所有proxy.conf.json
指向 now的引用proxy.conf.js
(也许你有它 in angular.json
、 inoptions.proxyConfig
或 in package.json
)。
在此之后,我们添加代码以添加绕过选项(在proxy.conf.js
它的结尾看起来像这样:
const PROXY_CONFIG =
{
"/api/profile/*": {
target: "http://asdasdfsdf.execute-api.ap-southeast-2.amazonaws.com",
secure: false,
logLevel: "debug",
changeOrigin: false,
bypass: function (req, res, proxyOptions) {
req.headers["host"] = "asdasdfsdf.execute-api.ap-southeast-2.amazonaws.com";
},
pathRewrite: {
"^/api/profile": "/dev/profile"
}
},
};
module.exports = PROXY_CONFIG;
推荐阅读
- javascript - JS按钮点击提示从文本到下拉菜单
- colors - 为什么 HSV 到 BGR 和 BGR 到 HSV 的转换不匹配?
- prolog - SWI-Prolog 编辑器接受无效编码
- arrays - 嵌套数组值树枝第三个子元素
- java - 使 webview 与浏览器相同 | 唯一用户跟踪
- python - 如何在熊猫数据框中设置每日频率?
- java - 是否可以在 IntelliJ 或其他平台中自动将 FXML 中的所有 ID 添加到 Controller
- java - Java - Slf4j 未显示在控制台上:
- excel - VBA 使用包含预先构建的句子的按钮来构建关于与客户讨论的消息
- javascript - d3.js 通过“基准”或行(数据)插入行路径