当前位置: 首页 > news >正文

Vue2 跨域问题报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK

请求场景:
当前页面URL:http://127.0.0.1:8000/testcase
跳转请求页面URL:http://127.0.0.1:5000/testcase_orm
使用axios请求 时 页面提示跨域报错

跨域报错信息

> Access to XMLHttpRequest at 'http://127.0.0.1:5000/testcase_orm' from
> origin 'http://localhost:8080' has been blocked by CORS policy: No
> 'Access-Control-Allow-Origin' header is present on the requested
> resource.

> AxiosError {message: 'Network Error', name: 'AxiosError', code:
> 'ERR_NETWORK'

Vue2跨域问题报错截图


通过对代码以及报错信息分析,问题出现在跨域请求上,(跨域请求:跨域是指浏览器不允许当前所在的源请求去访问另一个不一样的源请求,源是指请求协议、域名、端口号,这三个如果有一个不一致就是跨域请求)
| 当前URL | 请求URL | 是否跨域 | 结果分析 |
|--|--|--|--|
| http://www.kuakuakua.com | http://www.kuakuakua.com/index.html | 否 | 同源(域名、协议、端口号一致) |
| http://www.kuakuakua.com | https://www.kuakuakua.com | 跨域 | 协议不同(http/https) |
| http://www.kuakuakua.com | http://www.javashuo.com/ | 跨域 | 域名不同(www.kuakuakua.com/www.javashuo.com) |
| http://www.kuakuakua.com:8080 | http://www.kuakuakua.com:8081 | 跨域 | 端口号不同(8080/8081) |

**解决方法**

 - 步骤一:在项目目录下找到 vue.config.js 文件打开编辑

 - 步骤二:按照图中的结构,将给出的代码复制到 module.exports 中

```javascript
devServer: {
    proxy: {
      "/proxy_url":{           // /proxy_url 这个用来和根路径 baseURL 进行匹配
        target: 'http://127.0.0.1:5000',  // 这个是填写跨域的请求域名+端口号,也就是要请求的URL(不包含URL路径)
        changeOrigin: true,  // 是否允许跨域请求,在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {   // 路径重写
            '^/proxy_url': '/' // 替换target中的请求地址,原请求为 http://127.0.0.1:8000/kuayu 实际请求为 http://127.0.0.1:8000/proxy_url/kuayu  
        }
      }
    }
  }
```

 - 步骤三:找到main.js文件,将axios.defaults.baseURL 设置为 /proxy_url

```javascript
axios.defaults.baseURL = ‘/proxy_url’
```

 - 步骤四:然后xxx.vue文件中的methods中的axios请求正常使用就可以了 此处的完整请求URL是
   http://127.0.0.1:5000/testcase_orm(步骤四只是提供一个示例,具体的请求URL按照自己项目的URL去请求)

```javascript
methods:{
    getCaseList: function(){
        console.log("xxxxxxxxx")
        console.log('查看接口调用是否成功')
        this.$axios.get('/testcase_orm').then((result)=>{
             console.log('查看接口调用是否成功,被调用则成功')
             console.log(result)
        })
    }
  }
```

解决方法解析:
跨域问题,可以让服务端去添加请求头字段信息以及允许跨域访问,服务端的跨域问题不在本文章描述,感兴趣可以去看博主的另一篇Django跨域问题解决的博文

vue跨域问题本次使用的是代理方案进行解决,通过本地服务器进行代理转发到目标服务器,跨域只针对浏览器,对于node服务发出的请求时不会出现跨域问题,从而解决浏览器跨域问题。


感谢观看,希望对读者有所帮助,有疑问可以评论,不定时回复

相关文章:

  • 面试算法42:最近请求次数
  • PostgreSQL基于Patroni方案的高可用启动流程分析
  • docker 部署 若依 Ruoyi springboot+vue分离版 dockerCompose
  • spark3.3.x处理excel数据
  • MySQL的概念和sql语句
  • RabbitMQ原理(四):MQ的可靠性
  • 医学影像乳腺肿瘤分割的同学看过来:PDPNet:用于通用乳腺肿瘤分割的渐进式双先验网络
  • 多线程---wait和notify
  • 【Android知识笔记】插件化专题(二)
  • 一、基础算法精讲:双指针
  • C++大数加法——最简单实现
  • Webpack 基础以及常用插件使用方法
  • 基于GPIO子系统编写LED驱动
  • ChatGPT如何应对用户提出的道德伦理困境?
  • 【开源】基于SpringBoot的车险自助理赔系统的设计和实现
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • AngularJS指令开发(1)——参数详解
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • DataBase in Android
  • ES6系列(二)变量的解构赋值
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • github从入门到放弃(1)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java 网络编程(2):UDP 的使用
  • Map集合、散列表、红黑树介绍
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Rancher-k8s加速安装文档
  • Solarized Scheme
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 前端面试题总结
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 移动端解决方案学习记录
  • 由插件封装引出的一丢丢思考
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • !!Dom4j 学习笔记
  • ![CDATA[ ]] 是什么东东
  • #pragma预处理命令
  • #stm32整理(一)flash读写
  • #Z2294. 打印树的直径
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (四)c52学习之旅-流水LED灯
  • (四)linux文件内容查看
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一)kafka实战——kafka源码编译启动
  • (转) Face-Resources
  • .gitignore
  • .NET Core引入性能分析引导优化
  • .net 反编译_.net反编译的相关问题
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net程序集学习心得