reactjs - axios 将数据发布到客户端域而不是服务器域
问题描述
api.js
文件
import axios from 'axios';
export const signIn = formData => axios.post('/auth/signin', formData);
export const signUp = formData => axios.post('/auth/signup', formData);
package.json
在客户端
{
...
"proxy": "http://localhost:5000"
}
这里的问题是,每当我从 调用方法时api.js
,请求都会发送到localhost:3000
我的客户端正在运行的位置。相反,我希望将请求发送到代理。我不完全知道我打算做的事情是否可能?
解决方案
是的,同样是可能的。
基本上,会发生以下情况:如果对 URL 发出请求,并且该 URL 不由 React App 本身维护,那么该请求将被“重定向”到代理中提到的 URL。
确保 React App 本身没有/auth/signin
and/auth/signup
路由。
区分 API URL 的常用约定是在它们前面加上/api
.
因此,使 API 的 URL 为:/api/user/signIn
或/api/user/profile
.
另外,我假设您已经使用 Create React App 设置了 React 应用程序。如果没有,则proxy
需要将变量设置为webpack config
.
现在,要接受网络呼叫,您的后端需要CORS
启用。
推荐阅读
- python-3.x - 将 2D numpy 数组重塑为 4D 数组
- c# - Windows Server 2019 从 IIS 调用提升的 powershell Hyper-V 脚本(c# mvc)
- node.js - 使用 Nodejs 以编程方式将作业添加到 linux cron 列表
- vue.js - 无法弄清楚为什么我的 javascript 循环无法检查数组中对象的存在
- javascript - 通过 async/await 从 Node 中的 redis 同步获取
- netlogo - 创建品种属性和管理
- php - PHP:通过“表单”传递附加参数
- javascript - 为什么即使对我来说似乎正确,我也不能执行此查询?
- java - TabLayout viewpager switch Tab2 only editext在Tab1上有效
- python - 如何将文件保存在用户本地目录而不是烧瓶中的服务器上?