react使用代理(跨域问题)

在src文件夹下新建文件setupProxy.js

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'https://xxx.xxx.xx',
      changeOrigin: true,
      pathRewrite:{
        '^/api':''
    }
    })
  );
};

/**
 * 1.遇见/api前缀的请求,就会触发代理配置
 * 2.target:请求转发给谁
 * 3.changeOrigin:控制服务器收到的请求头中Host的值
 * 4.pathRewrite:重写请求路径(必须)
 */

案例

组件请求:

import { useEffect } from 'react';
import axios from 'axios';

function App() {
  useEffect(() => {
    axios
      .get('/api/search/users?q=sun')
      .then((res) => {
        console.log(res.data);
      })
  }, [])

  return (
    <div>
      app
    </div>
  );
}

export default App;

代理配置:

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'https://api.github.com',
      changeOrigin: true,
      pathRewrite:{
        '^/api':''
    }
    })
  );
};

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值