Vue-cli 创建的项目如何跨域请求

感谢 BeArchitect 的技术支持

 

问题描述:

使用 Vue-cli 创建的项目,开发地址是 localhost:8023,需要访问 localhost:9000 上的接口

 

分析原因:

不同域名之间的访问,需要跨域才能正确请求。跨域的方法很多,通常都需要后台配置

不过 Vue-cli 创建的项目,可以直接利用 Node.js 代理服务器,实现跨域请求

 

解决方案:

接口地址原本为 /form/save,但是为了匹配代理地址,在前面加一个 /api

 

如果使用了 axios,可以全局配置一个 baseURL,这样就不用挨个儿修改 url 了

axios.defaults.baseURL = '/api'

 

config>index.jsdev 中添加配置项 proxyTable:

    proxyTable: {
      '/api': {
        target: 'http://127.0.0.1:9000/',
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      }
    },

其中 '/api' 为匹配项,target 为被请求的地址

因为在 ajax 的 url 中加了前缀 '/api',而原本的接口是没有这个前缀的

所以需要通过 pathRewrite 来重写地址,将前缀 '/api' 转为 '/'

如果本身的接口地址就有 '/api' 这种通用前缀,就可以把 pathRewrite 删掉

 

转载于:https://www.cnblogs.com/wisewrong/p/6609594.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-cli中的跨域问题可以通过配置代理服务器来解决。在vue.config.js配置文件中,可以使用devServer的proxy选项来设置代理。具体操作如下: 1. 在项目根目录下找到vue.config.js文件。 2. 找到devServer选项,并在其中添加proxy配置。 3. 在proxy中设置需要代理的请求地址,以及目标地址。 4. 重启项目,验证跨域问题是否解决。 例如,如果需要代理请求地址以/api开头的请求,并将其转发到线上的地址,可以按照以下格式配置proxy: ```javascript module.exports = { devServer: { // ...省略其他配置 proxy: { '/api': { target: 'http://线上的地址' } } } } ``` 同时,需要确保在axios请求中不设置baseURL,即去掉baseURL配置项。然后重启项目,验证跨域问题是否解决。 请注意,这种代理配置只适用于开发阶段,不适用于生产环境。\[2\] #### 引用[.reference_title] - *1* *3* [如何解决跨域问题以及vuecli开发环境用代理服务器解决跨域问题](https://blog.csdn.net/weixin_45371730/article/details/121892285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue-cli解决跨域问题](https://blog.csdn.net/Moraxz/article/details/128414628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值