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实现登陆功能

    vue实现登陆功能

    这篇文章主要为大家详细介绍了vue实现登陆功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue2.0实现将页面中表格数据导出excel的实例

    Vue2.0实现将页面中表格数据导出excel的实例

    本篇文章主要介绍了Vue2.0实现将页面中表格数据导出excel的实例,非常具有实用价值,感兴趣的同学可以了解一下
    2017-08-08
  • vue深入解析之render function code详解

    vue深入解析之render function code详解

    vue对大家来说应该再熟悉不过了,下面这篇文章主要给大家深入的解析了vue之render function code的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • vue中使用echarts并根据选择条件动态展示echarts图表

    vue中使用echarts并根据选择条件动态展示echarts图表

    虽然老早就看过很多echarts的例子, 但自己接触的项目中一直都没有真正用到过,直到最近才开始真正使用,下面这篇文章主要给大家介绍了关于vue中使用echarts并根据选择条件动态展示echarts图表的相关资料,需要的朋友可以参考下
    2023-12-12
  • proxy代理不生效以及vue config.js不生效解决方法

    proxy代理不生效以及vue config.js不生效解决方法

    在开发Vue项目过程中,使用了Proxy代理进行数据劫持,但是在实际运行过程中发现代理并没有生效,也就是说数据并没有被劫持,这篇文章主要给大家介绍了关于proxy代理不生效以及vue config.js不生效解决方法的相关资料,需要的朋友可以参考下
    2023-11-11
  • vue中实现回车键登录功能

    vue中实现回车键登录功能

    这篇文章主要介绍了vue中实现回车键登录功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • vue2实现无感刷新token的方式详解

    vue2实现无感刷新token的方式详解

    在Web应用中,用户需要通过认证和授权才能访问受保护的资源,为了实现认证和授权功能,通常需要使用Token来标识用户身份并验证其权限,本文给大家介绍了vue2实现无感刷新token的方式,需要的朋友可以参考下
    2024-02-02
  • Slots Emit和Props穿透组件封装实现摸鱼加钟

    Slots Emit和Props穿透组件封装实现摸鱼加钟

    这篇文章主要为大家介绍了Slots Emit和Props穿透组件封装实现示例详解,为摸鱼加个钟,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vue解析Json数据获取Json里面的多个id问题

    vue解析Json数据获取Json里面的多个id问题

    这篇文章主要介绍了vue解析Json数据获取Json里面的多个id问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)

    基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)

    为了快速体验 MVVM 模式,我选择了非工程化方式来起步,并选择使用 Vue.js,以及基于它构建的 iView UI 框架。本文给大家分享基于 Vue.js 之 iView UI 框架非工程化实践记录,需要的朋友参考下吧
    2017-11-11

最新评论