使用React Router的Proxy API请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用React Router的Proxy API请求相关的知识,希望对你有一定的参考价值。
我正在尝试建立一个代理来处理GET和POST请求。 我已经做了很多次而没有在以前的react应用程序中使用react-router,并且它的工作原理很完美,但是由于此应用程序使用react-router导致失败。
代理不起作用,而是尝试在localhost域上进行调用:
ok: false
redirected: false
status: 500
statusText: "Internal Server Error"
url: "http://localhost:3001/api/call"
我没有对我的React Router做任何花哨的事情:
<Router history={history}>
<Switch>
<Route path="/" component={Home} />
<Route path="about" component={About} />
</Switch>
</Router>
这是代理(在setupProxy.js中):
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy('/api/call', { target: "http://www.domain.com.au/", changeOrigin: true } ));
};
以下是使用方法示例:
add(data) {
this.setState({button: "loading"})
fetch('/api/call', {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
})
.then(res => this.setState({success: res.ok}))
.catch(err => this.setState({success: false}))
}
使用react-router时,我是否需要做任何额外的工作才能使它正常工作?
答案
问题中的代码可以正常工作 。 当代理请求返回错误时,它将显示此错误来自本地主机,而不是来自代理URL。
以上是关于使用React Router的Proxy API请求的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 React 的 Context API 的 react-router-dom 的意外输出
带有 react-router /api 的 nginx 是 404 页面
使用 Passport + Facebook + Express + create-react-app + React-Router + 代理进行身份验证