当前位置:   article > 正文

vue3:axios跨域请求问题_vue3 axios.get跨域

vue3 axios.get跨域


前言

前后端分离的网页开发时,难免会遇到跨域问题,这里解决使用axios请求的跨域问题。


一、版本

1.Vue:3.1.4
2.axios:0.21.1

二、问题

1.使用axios直接请求搜狗的图片接口https://pic.sogou.com/napi/pc/searchList?mode=1&start=0&xml_len=48&query=美女

<template>
  <div class="about">
  </div>
</template>
<script>
import axios from 'axios'
export default {
  name: "About",
  data(){
    return {
    }
  },
  created(){
    axios.get('https://pic.sogou.com/napi/pc/searchList',{
      params:{
          mode: 1,
          start: 0,
          xml_len: 48,
          query: '美女'
        }}).then(res=>{
      console.log(res)
    }).catch(err=>{
      console.log(err)
    })
  }
}
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2.浏览器会报如下错误:
在这里插入图片描述

三、解决

这时候就需要配置代理了
1.在项目的根目录添加一个名字为vue.config.js的js文件:
在这里插入图片描述
2.在该文件里面写下如下代码:

module.exports = {
    configureWebpack:{
        resolve:{
        	// 给路径起别名
            alias:{
                'assets': '@/assets',
                'common': '@/common',
                'components': '@/components',
                'network': '@/network',
                'views': '@/views'
            }
        }
    },
    devServer:{
        proxy:{
            '/sougou':{
            	// 跨域的服务器地址
                target: 'https://pic.sogou.com/napi/pc/searchList',
                // 是否允许跨域
                changeOrigin: true,
                // 替换掉请求路径的/sougou为“”
                pathRewrite:{'^/sougou': ""}
            },
            }
        }
    }
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

3.使用

<template>
  <div class="about">
  </div>
</template>
<script>
import axios from 'axios'
export default {
  name: "About",
  data(){
    return {
    }
  },
  created(){
    axios.get('/sougou',{
      params:{
          mode: 1,
          start: 0,
          xml_len: 48,
          query: '美女'
        }}).then(res=>{
      console.log(res)
    }).catch(err=>{
      console.log(err)
    })
  }
}
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

这次就不会报错:
在这里插入图片描述
注意,每次更改vue.config.js后都要重启项目才能生效
有什么问题欢迎在评论区留言

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/658319
推荐阅读
相关标签
  

闽ICP备14008679号