vue3 vite项目反向代理报405

js yekong

vue3 项目开发过程中,后端提供的一部分接口会报跨域,这就需要前端做一下反向代理了,但是代理后,前的访问接口会报405这就莫名其妙了。去掉rewrite后就可以正常访问了。

有405的配置

server: {
    port: 3012,
    open: true,
    overlay: {
        warnings: false,
        errors: true
    },
    proxy: {
        '/dataproperty': {
            target: 'http://192.168.235.157',
            changeOrigin: true,
            rewrite: (path) => path.replace(/^\/dataproperty/, ''),
        },
    },
},

可以正常访问的配置

server: {
    port: 3012,
    open: true,
    overlay: {
        warnings: false,
        errors: true
    },
    proxy: {
        '/dataproperty': {
            target: 'http://192.168.235.157',
            changeOrigin: true,
        },
    },
},

rewrite的作用

在这个配置中,rewrite的作用是替换URL的一部分。

更具体地,rewrite 是一个函数,其参数是一个路径(在这种情况下,以/dataproperty开头的任何路径)。这个函数将使用replace方法将路径中的/dataproperty替换为''(空字符串),从而有效地删除它。

这意味着,如果您有一个请求发送到/dataproperty/some/endpoint,那么这个rewrite函数将把它改写为/some/endpoint

这个机制在代理服务器设置中很有用,因为它允许您对来自客户端的URL进行微调,以便它们能够正确地映射到目标服务器上的实际端点。在这个例子中,假设你的客户端正在发出请求到http://localhost:3012/dataproperty/some/endpoint,代理服务器将会将这个请求转发到http://192.168.235.157/some/endpoint

喜欢