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

本文介绍了在Vue.js项目中使用axios进行数据请求时遇到的跨域问题及其解决方案。通过设置Vue.config.js的代理服务器,成功访问了豆瓣电影的JSON数据。关键步骤包括设置axios请求、配置代理服务器的pathRewrite以去除不必要路径,以及启用changeOrigin以确保请求正确发送。
摘要由CSDN通过智能技术生成

今天仍然在学习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进行了代理服务器到目标服务器路径的整理,请求成功了
在这里插入图片描述

解决了跨域问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨小街

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值