Vue-cli集成axios请求出现CORS跨域问题及解决

 更新时间:2023年10月10日 11:34:48   作者:凌晨小街  
这篇文章主要介绍了Vue-cli集成axios请求出现CORS跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,

Vue-cli集成axios请求出现CORS跨域问题

今天仍然在学习Vue,出现了一个我意料之中的问题

请求跨域问题

我想通过主机来访问豆瓣里面的json数据

首先按照python爬虫的思想,我掏了一个豆瓣json数据的url地址信息及参数

① 基本url: https://movie.douban.com/j/search_subjects

②请求参数如下:

  • type:‘movie’,
  • tag:‘热门’,
  • page_limit:50,
  • page_start:0

二话不说开始用axios进行数据请求,

那么如果没有axiso,请先下载

npm i axios

App.Vue的代码如下

<template>
    <button @click="getData">axios获取请求</button>
</template>
<script>
import axios from 'axios';
// 联系网址:https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20
export default {
    methods: {
        getData(){
            axios.get('/ysj/j/search_subjects'
              ,{
                params:{
                    type:'movie',
                    tag:'热门',
                    page_limit:50,
                    page_start:0
                }
              }
              )
            .then(res => {
                console.log('请求成功',res)
            })
            .catch(err => {
                console.error('请求失败',err); 
            })
        }
    },
}
</script>
<style>
</style>

同时在vue.config,js里面配置代理服务器

module.exports = {
    pages:{
        index:{
            //程序的入口
            entry:'src/main.js',
        },
    },
    lintOnSave:false,  //关闭语法检查
    // 开启一个Vue的代服务器,后面端口视自己请求的端口修改
    // devServer: {
    //     proxy: 'https://movie.douban.com'
    // }
    /**
     * 1、/ysj 是加到实际请求的端口后面
     * 
     * 2、而在实际请求中,浏览器请求发给代理服务器
     * ,代理服务器也会携带/ysj内容,这样子无法获取数据
     * ,所以用正则表达式将/ysj拿掉,也就是pathRewrite
     * 
     * 3、ws是webSocket的简写,默认是true
     * 
     * 4、changeOrigin为true代表当代理服务器给目标服务器发送请求时
     * ,给出的与目标服务器一致的端口号, 防止目标服务器拦截我的请求
     */
    devServer: {
        proxy: {
          '/ysj': {
            target: 'https://movie.douban.com',
            pathRewrite:{'^/ysj':''},
            // ws: true,
            changeOrigin: true
          },
        }
      }
}

最后由于写了pathRewrite进行了代理服务器到目标服务器路径的整理,请求成功了

总结

解决了跨域问题!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于vue-tree-chart简单的使用

    关于vue-tree-chart简单的使用

    这篇文章主要介绍了关于vue-tree-chart简单的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue如何动态给id设置style样式

    Vue如何动态给id设置style样式

    这篇文章主要介绍了Vue如何动态给id设置style样式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 编写 Vue v-for 循环的 7 种方式

    编写 Vue v-for 循环的 7 种方式

    这篇文章主要分享可编写 Vue v-for 循环的 7 种方式,在Vue中,基本上每个项目都会用到v-for循环。它们允许你在模板代码中编写for循环,接下来一起看看下面文章的详细介绍吧

    2021-12-12
  • Vue使用Vue-cropper实现图片裁剪

    Vue使用Vue-cropper实现图片裁剪

    这篇文章主要为大家详细介绍了Vue使用Vue-cropper实现图片裁剪,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • vue3使用vue-i18n的方法详解(ts中使用$t, vue3不用this)

    vue3使用vue-i18n的方法详解(ts中使用$t, vue3不用this)

    所谓的vue-i18n国际化方案就是根据它的规则自己建立一套语言字典,对于每一个字(message)都有一个统一的标识符,下面这篇文章主要给大家介绍了关于vue3使用vue-i18n(ts中使用$t, vue3不用this)的相关资料,需要的朋友可以参考下
    2022-12-12
  • vue+node 实现视频在线播放的实例代码

    vue+node 实现视频在线播放的实例代码

    这篇文章主要介绍了vue+node 实现视频在线播放的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • vue实现侧边栏导航效果

    vue实现侧边栏导航效果

    这篇文章主要为大家详细介绍了vue实现侧边栏导航效果,右侧显示对应内容,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Vue如何下载本地静态资源static文件夹

    Vue如何下载本地静态资源static文件夹

    这篇文章主要介绍了Vue如何下载本地静态资源static文件夹,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue3.0 上手体验

    vue3.0 上手体验

    vue3.0 beta 版本已经发布有一段时间了,今天这篇文章就带大家体验一下,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • vue3 腾讯地图设置签到范围并获取经纬度的实现代码

    vue3 腾讯地图设置签到范围并获取经纬度的实现代码

    本文给大家介绍vue3 腾讯地图设置签到范围并获取经纬度的实现代码,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2022-05-05

最新评论