方法一:配置 package.json 文件
不能配置多个代理,只能配置单个代理 当请求了当前项目不存在的资源时,那么该请求会转发给5000(优先匹配当前项目资源)
- 打开
package.json 文件,进行配置 "proxy":"http://localhost:5000" - 使用方法
import React, { Component } from 'react'
import axios from 'axios'
export default class App extends Component {
getData1 = () => {
axios.get("http://localhost:3000/search/data1").then(res => {
console.log(res)
})
}
render() {
return (
<div>
<button onClick={this.getData1}>获取数据1</button>
</div >
)
}
}
方法二:创建 setupProxy.js 文件进行配置(推荐)
可以配置多个代理,可以灵活的控制请求是否走代理。 请求接口的时候必须加上所配置的前缀。
-
在src文件夹下创建配置文件:setupProxy.js ,创建的配置文件名不可自定义 -
配置 setupProxy.js 文件 const { createProxyMiddleware } = require('http-proxy-middleware')
module.exports = function (app) {
app.use(
createProxyMiddleware('/api1', {
target: "http://localhost:5000",
changeOrigin: true,
pathRewrite: { '^/api1': '' }
}),
createProxyMiddleware('/api2', {
target: "http://localhost:5002",
changeOrigin: true,
pathRewrite: { '^/api2': '' }
})
)
}
-
使用方法 import React, { Component } from 'react'
import axios from 'axios'
export default class App extends Component {
getData1 = () => {
axios.get("/api1/search/data1").then(res => {
console.log(res)
})
}
getData2 = () => {
axios.get("/api2/search/data2").then(res => {
console.log(res)
})
}
render() {
return (
<div>
<button onClick={this.getData1}>获取数据1</button>
<button onClick={this.getData2}>获取数据2</button>
</div >
)
}
}
|