Nuxt.js 反向代理 后报 fail(connect rejected)的相关解决方法及其个人感受

120 阅读2分钟

不久前接手一个基于Nuxt.js的开发任务,Nuxt.js是基于Vue实现服务端渲染的框架,这在之前我还没有搞过,导致在进行数据请求时,相继出了跨域、blocked:mixed-centent、connect refused 等错误问题,经历一番查找之后终于了解该怎样处理。

Nuxt.js是SSR(服务端渲染),我在开发中在工程的目录找到baseURL后,将后端的IP添加后,就启动了项目的,但是之后页面一直是现实数据不全,这个问题卡了我很久,直至最后我发现一个问题,就是在工程的env.development.js中配置baseURL的key有两个,如下:

    API_BASE_URL_CLIENT: 'https://192.168.12.149/api/v1',
    API_BASE_URL_SSR: 'https://192.168.12.149/api/v1',

由于之前的不仔细,将两个key的value都指向了后端IP,这其实是不对的,在代码中,也可以轻松的发现,CLIENT的意思是客户端,其实不言而喻就知道其实在本地是有一个node服务器的,言外之意就是我们的服务器有两个,一个是后端服务,另一个是在本地起的服务,由于之前我的baseURL都指向了后端,服务端的请求错误,所以页面显示不完全。 所以,可见的仔细阅读他人代码有多么重要,即使没有注释,也要看代码的命名方式。

待将这个问题解决之后,项目就顺利的跑起来了。 期间遇到了connect rejected、或者是fail这样的请求,研究的问题有两种,一种其实后端是http,而你请求的是https,其次就是反向代理配置的不对了,下面给大家展示了配置反向代理的具体方法。

安装: @nuxtjs/axios & @nuxt/proxy

    // env.development.js文件中:
    API_BASE_URL_CLIENT: 'https://192.168.12.149/api/v1',
    API_BASE_URL_SSR: 'https://192.168.12.149/api/v1',
    // Base_URL配置的是指向本机的IP地址;
    // nuxt.config.js 文件中
    modules: [
        '~/modules/sentry',
        'nuxt-user-agent',
        ['cookie-universal-nuxt', { alias: 'cookies' }],
        '@nuxtjs/markdownit',
        '@nuxtjs/axios',
        '@nuxtjs/proxy'
    ],
    axios:{
        proxy:true,
        credentials: true,
        prefix: "/api/v1"
    },
    proxy:{
        '/api/v1':{
                target:'http://192.168.12.71:8002',
                // changeOrigin:true,
                // pathRewrite:{
                // 	'^/api/v1':'/api/v1'	
                // }
        }
    },