error:Localhost页面拒绝访问 or When specified, “proxy“ in package.json must be a string. Instead, the type

react设置跨域代理

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

setProxy.js:

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

module.exports= function (app) {
    app.use(
        createProxyMiddleware(
            "/api",
            {
                target: "http://127.0.0.1:8080",
                changeOrigin: true,
                ws: true,
                pathRewrite:{
                    "^/api":"",
                },
            }
        )
    )
}

还要记得安装http-proxy-middleware模块:

npm install http-proxy-middleware

react项目启动后,Localhost页面拒绝访问的原因

Localhost页面拒绝访问,多半是因为setupProxy设置跨域代理时出现了错误,只要写法对了就不会出错。高版本引入方式:

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

还要特别注意下面一行函数的写法:

module.exports= function (app) {...}

在这里插入图片描述

React项目运行出现错误:When specified, “proxy” in package.json must be a string.Instead, the type of “proxy” was “object”.Either remove “proxy” from package.json, or make it a string.

原因

如果只是在代理中使用纯字符串,则不需要任何其他配置。但是,当您使用对象时,您正在使用高级配置。这个错误是因为在配置代理时直接在package.json中添加了:

"proxy": {
    "/auth/google": {
        "target": "http://localhost:5000"
    }
}

因此,解决步骤如下:

  1. 安装http-proxy-middleware: npm i --save http-proxy-middleware

  2. 从package.json中删除代码:

    "proxy": {
        "/auth/google": {
            "target": "http://localhost:5000"
        }
    }
    
  3. 为代理创建一个安装文件。在客户端的src文件夹中,创建文件setupProxy.js,然后输入以下代码:

    const proxy = require('http-proxy-middleware');
    module.exports = function(app) {
        app.use(proxy('/auth/google', 
            { target: 'http://localhost:5000/' }
        ));
    }
    
  4. 上述代码可能会出现错误:Localhost页面拒绝访问,这是因为引入方式版本太低,高版本引入方式:

    const { createProxyMiddleware } = require('http-proxy-middleware')
    
  5. 完整代码

    const { createProxyMiddleware } = require('http-proxy-middleware')
    
    module.exports= function (app) {
       app.use(
           createProxyMiddleware(
               "/api",
               {
                   target: "http://127.0.0.1:8080",
                   changeOrigin: true,
                   ws: true,
                   pathRewrite:{
                       "^/api":"",
                   },
               }
           )
       )
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值