前端AJAX基础

本文详细介绍了前端AJAX的基础知识,包括axios的基本语法、表单数据提交、JSON数据类型以及同源策略。讲解了GET和POST请求、axios的解构赋值、FormData的使用,还探讨了JSON在Ajax中的应用和XMLHttpRequest对象。同时,文章提到了Jquery中的Ajax方法,如$.get()、$.post()和$.ajax(),以及如何解决跨域问题和应用防抖、节流技巧。
摘要由CSDN通过智能技术生成

AJAX学习

Ajax的概念:

Ajax用来实现客户端网页请求服务器的数据,当用户有操作时可以实时更新部分模块或者整个网页


先引入axios库 官网:http://www.axios-js.com/

axios基本语法:

模板:
   axios({
   
         method: '',
         url: '',
        }).then((result) => {
   
   //.then 用来指定请求成功之后的回调函数
  // 形参中的result是请求成功之后的结果
        })

then方法(或回调函数)负责接受发过来的数据

属性区分大小写

axios GET 请求:
  axios({
   
    method: '请求的类型',
    url: '请求的URL地址',
     params: {
   id: 1, bookname: '红楼梦'} 
     // params用于传递参数,可选
  }).then((result) => {
   })

Demo:为button绑定一个click事件并发送get请求,注意params可省

    $('button').on('click', function() {
   
        axios({
   
            method: 'GET',
            url: 'http://www.liulongbin.top:3006/api/getbooks',
            params: {
   
                id: 3
            },
        }).then(result => {
         //then控制请求成功
            console.log(result.data.data);   
        }).catch(err => {
           //catch控制请求失败(扩展)

get参数的本质就是把所有属性用=链接、&符号分隔、放到路径的最末尾(前面要加?)

Demo:

http://www.liulongbin.top:3006/getbook?id=1&bookname=红楼梦

注意不能有空格和中文等特殊字符,浏览器会对URL的中文进行编码处理

编码和解码

在这里插入图片描述

axios的解构赋值
        axios({
   
        method: 'GET',
        url: 'http://www.liulongbin.top:3009/api/getbooks'
        }).then(({
    data: res}) => {
   
        // 从 .then(fn) 回调函数的形参中,解构赋值出 data 属性,重命名为 res
        console.log(res)
        })

因为ajax拿的参数中最重要的就是data,在then回调函数中通过对象解构把data的参数赋值到一个res的变量中(名称随意),然后对这个json进行操作

then返回的数据:
在这里插入图片描述

axios POST 请求:

POST请求一定得有参数,因为POST就是推数据给服务器

        axios({
   
            method: 'POST',
            url: 'http://www.liulongbin.top:3009/api/addbook',
            data: {
                //post用的是data传递请求参数
                bookname: '三体',
                author: '刘慈欣',
                publisher: '北京人民出版社'
            },
        }).then(({
    data: res}) => {
   
            console.log(res);
        })

请求报文和响应报文
  • 客户端发请求给服务器,请求报文规定数据格式

  • 服务器回数据,响应报文规定数据格式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意的是响应码和状态码不同,下面展示的是响应码
    在这里插入图片描述

  • 响应码由http协议制定,一般都约定俗成

  • 状态码不唯一,在接收到的数据中,可以由后端人员自己定义;就好比客户端无法请求数据大部分都返回404

响应状态码表示与服务器端的通信请求是否成功,而状态码表示业务处理的状态,一般会由后端给你写在接口文档里,供需要时查阅

AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。AJAX 请求允许网页和服务器进行异步通信,这意味着可以在不打断用户操作的情况下,向服务器发送请求并获取数据。在JavaScript中,实现AJAX请求通常有几种方式,最常用的是使用`XMLHttpRequest`对象,以及现代浏览器中广泛支持的`fetch` API。 使用`XMLHttpRequest`对象的AJAX请求的基本步骤如下: 1. 创建`XMLHttpRequest`对象。 2. 设置请求的类型(GET、POST等)、URL以及同步或异步标志。 3. 发送请求。 4. 设置响应处理函数,处理服务器响应数据。 一个简单的GET请求示例代码如下: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'yoururl', true); // true 表示异步请求 xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { // 请求成功,处理响应内容 console.log(xhr.responseText); } }; xhr.send(); ``` 而使用`fetch` API的示例代码如下: ```javascript fetch('yoururl') .then(response => response.json()) // 解析响应内容 .then(data => console.log(data)) // 处理数据 .catch(error => console.error('Error:', error)); ``` `fetch` API 提供了更简洁的代码和更好的 Promise 支持,但在一些旧版浏览器中可能不被支持。 AJAX请求在Web开发中非常实用,能够提高用户体验,使得Web应用能够更像桌面应用一样响应用户操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值