新版react16.6中 create-react-app升级版(webpack4.0) 配置http请求跨域问题

Posted reactjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新版react16.6中 create-react-app升级版(webpack4.0) 配置http请求跨域问题相关的知识,希望对你有一定的参考价值。

在create-react-app之前的版本,我们配置http请求跨域是直接在package.json配置即可,如下图:

技术分享图片

 

但在最新的create-react-app v2升级版(webpack4.0)中,如果proxy不是字符串,并不能这么在 package.json直接配置,会报错!

通过查阅create-react-app的官方文档https://facebook.github.io/create-react-app/docs/getting-started,找到了如下的解决方案。

     1):安装http-proxy-middleware管理包,cnpm http-proxy-middleware --save

   2):在项目目录src/下新建setupProxy.js文件,然后写入如下代码:

const proxy = require(‘http-proxy-middleware‘);

module.exports = function(app) {
  app.use(proxy(‘/api‘, { 
       target: ‘http://192.168.1.144:8181‘ ,
       secure: false,
       changeOrigin: true,
       pathRewrite: {
        "^/api": "/"
       },
       // cookieDomainRewrite: "http://localhost:3000"
    }));
};

 

     3): 在组件中使用axios测试http请求是否成功

   

   componentDidMount() {
        axios({
            url: "/api/dataServicePlatform/data/platform?method=select&serviceId=xhly_ChaSight&backtype=json",
            method: "get"
        }).then(res => {
            console.log(res);
        })
    }

   4):  浏览器中成功拿到后端的数据

技术分享图片

 

以上是关于新版react16.6中 create-react-app升级版(webpack4.0) 配置http请求跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

React安装步骤

用React.lazy和Suspense优化React代码打包

React 脚手架的搭建

创建并运行rn app项目

React.lazy和React.Suspense异步加载组件

React使用 create-react-app 快速构建 React 开发环境