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

网络请求发送

私人博客

许小墨のBlog —— 菜鸡博客直通车

系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图!

系列文章目录

前端系列文章——传送门
后端系列文章——传送门


文章目录

  • 私人博客
  • 系列文章目录
  • 网络请求


网络请求

现代的前端项目都是前后端分离开发模式进行的,也就避免不了前端需要给后端服务器发送网络请求,对数据进行增删改查的操作。

发起网络请求的方法我们可以总结为4种:

  • xhr - 原生的ajax

    • 缺点:代码繁多

    • 语法:

      const xhr = new XMLHttpRequest()
      xhr.open(请求方式, 请求路径, 是否异步)
      xhr.send()
      xhr.onreadystatechange = function() {if(xhr.readyState === 4) {if(xhr.status >= 200 && xhr.status < 300) {let res = xhr.responseText}}
      }xhr.onload = function() {let res = xhr.responseText
      }
      

      其他请求方式的原理,就是原生ajax

  • jquery的ajax请求 - jquery库封装好的ajax请求

    • 语法

      • 下载

      • 引入

        $.get(路径, 成功回调函数, 希望返回的数据格式)
        $.post(路径, 成功回调函数, 希望返回的数据格式)
        $.ajax({url: '',method: '',data: '',dataType: '',async: true,success: res => {},error: res => {}
        })
        
    • 优点:功能强大,内置promise

    • 缺点:jquery大部分代码是封装的dom,有牛刀宰鸡的感觉

  • fetch - H5自带的请求

    • 语法:

      fetch(路径, {method: '',body: '携带的数据'
      }) // 返回promise对象
      .then(resp => {// resp是一个响应对象 - 可以通过resp决定后续希望得到的数据格式return resp.text()return resp.json()
      })
      .then(res => {// res是最终得到的结果数据
      })
      
    • 优点:不用下载,内置,写法简单

    • 缺点:需要then两次

  • axios - 现在比较流行的ajax封装

    • 语法:

      • 下载

      • 引入

        axios.get(路径).then(res => {})
        axios.post(路径, 请求主体).then(res => {})
        axios({method: '',url: '',headers: {},data: ''
        }).then(res => {})
        
      • 全局配置

        axios.defaults.baseURL = 'http://localhost:8888'// 设置基准地址
        axios.defaults.headers['Authorization'] = 'token令牌'// 设置请求头信息,通用头信息
        
    • 优点:写法简单,功能强大

    • 缺点:第三方的,需要下载

我们在企业项目中,通常使用fetch和axios来发送请求。


本博文缺失大量图片,严重影响内容完整性以及阅读体验,完整内容请前往本人菜鸡博客——许小墨のBlog

http://www.lryc.cn/news/66641.html

相关文章:

  • 微信小程序开发
  • number类型超出16位的问题(前端、后端处理)
  • 【高并发】网络模式
  • springboot+dubbo+zookeeper 项目实战
  • PHP学习笔记第一天
  • 案例研究|萤石网络通过JumpServer解决安全运维难题
  • 即时聊天app开发-即时通讯app开发方案分析
  • js为什么会阻塞渲染, 什么是异步?
  • Nuvoton NK-980IOT开发板 u-boot 编译
  • OpenCL使用CL_MEM_USE_HOST_PTR存储器对象属性与存储器映射
  • 浅谈osgEarth操控器类的createLocalCoordFrame函数如何将局部坐标系的点转为世界坐标系下的Martix(ENU坐标)
  • PHP程序员和Python程序员的职业前景怎么样?我来聊聊自己的体会
  • 【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法
  • 最全的免费SSL证书申请方式
  • Ceph入门到精通-CrushMap算法概述
  • 如何利用API做好电商,接口如何凋用关键字
  • Give me a logic game idea about economics
  • 测试之路,2023年软件测试市场领域有哪些变化?突破走得更远...
  • 配置Windows终端直接执行Python脚本,无需输入“python“
  • IDEA快捷键
  • 关于c++指针数组的要设置初值的情况
  • 泰克RSA306B频谱分析仪测试信道功率方法
  • 深度学习技巧应用12-神经网络训练中批归一化的应用
  • Masonry使用以及源码解析(未完待续
  • 118-Linux_数据库_索引
  • macos和windows区别 macos怎么运行windows程序
  • 一起Talk Android吧(第五百四十二回:无进度值ProgressBar)
  • Oracle DataGuard奇怪的ORA-16494错误
  • 《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!
  • AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘