vue proxyTable 解决跨域

在localhost环境下跑项目时,接口地址是 http://xxxx.com/cyryysl/mobileApplyStep1Save.action 这样的接口地址,我们这样直接使用会存在跨域的请求,导致接口请求不成功,我们进入 config/index.js 代码下如下配置即可。

// 代理配置表,在这里可以配置特定的请求代理到对应的API接口
    // 例如将'localhost:8080/api/xxx'代理到'www.example.com/api/xxx'
    // 使用方法:https://vuejs-templates.github.io/webpack/proxy.html
 proxyTable: {
      '/cyryysl': {
        target: 'http://192.168.170.41:8082/cyryysl', // 接口的域名
        // secure: false,  // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: {
          '^/cyryysl': ''
        }
      }
    },

 

main.js里面这样写

接口地址原本是 /cyryysl/xxx.action,但是为了匹配代理地址,在前面加一个 /cyryysl,  因此接口地址需要写成这样的即可生效 /cyryysl/xxx.action。

注意: '/cyryysl' 为匹配项,target 为被请求的地址,因为在 ajax 的 url 中加了前缀 '/cyryysl',而原本的接口是没有这个前缀的,所以需要通过 pathRewrite 来重写地址,将前缀 '/cyryysl' 转为 '/'。如果本身的接口地址就有 '/cyryysl' 这种通用前缀,就可以把 pathRewrite 删掉。

自己的理解:这个配置只是对本地环境的配置,和打包后的线上环境是没关系的,如果线上的前后端代码不在同一域名下,那就要通过其他方式来解决了,我们公司目前用的nginx代理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章