使用代理时,带有 Rocket 后端的 React 应用程序给出 ECONNREFUSED
React app with Rocket backend giving ECONNREFUSED when using proxy
我正在尝试使用 rocket 为后端制作一个网络应用程序,并为前端做出反应。但是,当我尝试制作代理时,我不断收到 rayk@pop-os:~/repos/homrs/frontend$ curl http://localhost:3000/api Proxy error: Could not proxy request /api from localhost:3000 to http://localhost:8000 (ECONNREFUSED).
我目前尝试的是将 "proxy": "http://localhost:8000"
添加到应用程序中的 package.json 并且我一直尝试按照此处的建议手动配置代理 https://create-react-app.dev/docs/proxying-api-requests-in-development/#configuring-the-proxy-manually.
这是我用来测试的后端代码:
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
fn main() {
rocket::ignite().mount("/api", routes![index]).launch();
}
这是我尝试使用的setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:8000',
changeOrigin: true,
})
);
};
我也尝试过使用 http://localhost:8000
和 http://localhost:8000/
。我也试过将火箭端口从 8000 更改为 3001,但也没有用。
编辑:这是 github 存储库的 link:https://github.com/GimpFlamingo/homrs
这里的人:https://github.com/plouc/mozaik/issues/118 遇到了类似的问题。
我能够重现您的问题并发现将 address = "127.0.0.1"
添加到 Rocket.toml 然后将“代理”设置为“http://127.0.0.1:8080”为我解决了这个问题!
我正在尝试使用 rocket 为后端制作一个网络应用程序,并为前端做出反应。但是,当我尝试制作代理时,我不断收到 rayk@pop-os:~/repos/homrs/frontend$ curl http://localhost:3000/api Proxy error: Could not proxy request /api from localhost:3000 to http://localhost:8000 (ECONNREFUSED).
我目前尝试的是将 "proxy": "http://localhost:8000"
添加到应用程序中的 package.json 并且我一直尝试按照此处的建议手动配置代理 https://create-react-app.dev/docs/proxying-api-requests-in-development/#configuring-the-proxy-manually.
这是我用来测试的后端代码:
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
fn main() {
rocket::ignite().mount("/api", routes![index]).launch();
}
这是我尝试使用的setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:8000',
changeOrigin: true,
})
);
};
我也尝试过使用 http://localhost:8000
和 http://localhost:8000/
。我也试过将火箭端口从 8000 更改为 3001,但也没有用。
编辑:这是 github 存储库的 link:https://github.com/GimpFlamingo/homrs
这里的人:https://github.com/plouc/mozaik/issues/118 遇到了类似的问题。
我能够重现您的问题并发现将 address = "127.0.0.1"
添加到 Rocket.toml 然后将“代理”设置为“http://127.0.0.1:8080”为我解决了这个问题!