Ajax:请求 响应

Ajax:请求 & 响应

    • Ajax
    • jQuery的Ajax接口
      • $.get
      • $.post
      • $.ajax
    • PostMan 接口测试
      • get
      • post


Ajax

在这里插入图片描述

浏览器中看到的数据,并不是保存在浏览器本地的,而是实时向服务器进行请求的。当服务器接收到请求,就会发回一个响应,此时浏览器就可以从响应中拆解出网页的内容。

在基础的HTML + CSS + JavaScript的架构中,做出的网页都是没有与服务器发生交互的静态网页。如果想要请求服务器上的数据,达到实时渲染网页的效果,就要用到XMLHttpRequest对象,完成数据的请求,而使用这个对象与服务器进行数据传输,就称为Ajax

这个XMLHttpRequest是由浏览器原生提供的JavaScript对象,其用法比较复杂。使用jQuery封装的Ajax接口,会降低使用难度。


jQuery的Ajax接口

$.get

jQuery$.get()方法,用于发起get请求,获取服务器的信息。

语法:

$.get(url, data, callback)

参数:

  • url:请求的资源地址
  • data:请求期间携带的参数,可选参数
  • callback:请求成功时,触发的回调函数,可选参数

使用以下网址测试接口:

https://jsonplaceholder.typicode.com/

在这个网址的/post下,有很多json数据:

在这里插入图片描述

可以通过Ajax请求这些数据。

示例:

<button id="GET">get</button>
<script>
  $(function () {
    $('#GET').on('click', function () {
      $.get('https://jsonplaceholder.typicode.com/posts', function (res) {
        console.log(res)
      })
    })
  })
</script>

这里定义了一个按钮,并且绑定事件,只要点击按钮,就发送一个请求,回调函数中,res参数会得到请求的返回值,并输出到控制台。

在这里插入图片描述

得到了一个数组,数组内有100个json对象,说明请求成功了。

如果不希望一次性拿到这么多数据,可以加上参数:

<button id="GET">get</button>
<script>
  $(function () {
    $('#GET').on('click', function () {
      $.get('https://jsonplaceholder.typicode.com/posts', {id: 2}, function (res) {
        console.log(res)
      })
    })
  })
</script>

第二个参数是一个对象,对象内包含了请求的参数列表,id:2表示请求id=2的数据。

在这里插入图片描述

这次就只请求到了一条数据,id=2


$.post

jQuery$.post()方法,用于发起post请求,给服务器提交数据。

语法:

$.post(url, data, callback)

参数:

  • url:发送的资源地址
  • data:发送期间携带的参数,可选参数
  • callback:发送成功时,触发的回调函数,可选参数

这三个参数的用法与post一致,如果往之前的https://jsonplaceholder.typicode.com/posts发送post请求,那么发送出去的数据是什么,这个服务器就会返回什么。

示例:

<button id="POST">post</button>
<script>
  $(function () {
    $('#POST').on('click', function () {
      $.post('https://jsonplaceholder.typicode.com/posts', {
        "postId": 1,
        body: "112233"
      },
        function (res) {
          console.log(res)
        })
    })
  })
</script>

这个代码,向服务器发送一个数据,就是第二个参数里面的对象,最后输出返回结果到控制台。

输出值:

在这里插入图片描述

最后返回了一个和发送出去的对象一样的内容,除了发送出去的postIdbody,它还给这条消息分配了一个id:101


$.ajax

$.ajax()是对getpost进行了一个综合,一个接口可以实现多个功能。

语法:

$.ajax({
	type: '',
	url: '',
	data: {},
	success: function(res) {}
	})

参数:

  • type:请求的方式
  • url:请求的地址
  • data:本次请求携带的数据
  • success:请求成功触发的回调函数

此处要注意,以上所有参数,都包含在一个对象{}中。在type中,可以指定getpost等请求方式。

之前发送的两个请求的$.ajax写法:

$.ajax({
  type: 'GET',
  url: 'https://jsonplaceholder.typicode.com/posts',
  data: {
    id: 1
  },
  success: function (res) {
    console.log(res)
  }
})

$.ajax({
  type: 'POST',
  url: 'https://jsonplaceholder.typicode.com/posts',
  data: {
    "postId": 1111,
    body: "112233"
  },
  success: function (res) {
    console.log(res)
  }
})

此处的type值,既可以大写也可以小写。


PostMan 接口测试

在先前的Ajax请求中,url填入的地址,称为接口。它一般是由后端提供的,前端把收集到的信息发送给后端,后端再把处理好的信息发回给前端渲染到页面上。

有的时候,不确定后端提供的URL是否可以正常使用,就需要进行接口测试,最常用的工具就是PostMan

get

测试get接口,首先在顶部的栏目中选择GET,随后输入要测试的接口地址:

在这里插入图片描述

随后在下面的表格中填入参数:

在这里插入图片描述

此处选择id: 1,会发现上面的地址自动增加了?id=1这个后缀,其实get请求发出的参数,就是通过追加在请求地址后面完成的

最后点击send

在这里插入图片描述

在下方就可以得到发送回来的响应了,右上角200 OK表示请求成功。


post

发送post请求与get请求略有不同。

  1. 首先左上角选中POST方法
  2. 在栏目中填入要访问的地址
  3. 在下面的表格中,选择body
  4. 在表格中填入携带的参数

在这里插入图片描述

可以看到,post请求携带的参数,没有通过?追加到url的末尾,因为post的参数是保存在http请求的请求体内部,而不是地址中。也是因此,要在填入参数时,选择body这个选项。

点击发送后,可以看到响应结果:

在这里插入图片描述

右上角201 create表示发送成功,得到返回值,并分配了一个id:101


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904570.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ALIGN_ Tuning Multi-mode Token-level Prompt Alignment across Modalities

文章汇总 当前的问题 目前的工作集中于单模提示发现&#xff0c;即一种模态只有一个提示&#xff0c;这可能不足以代表一个类[17]。这个问题在多模态提示学习中更为严重&#xff0c;因为视觉和文本概念及其对齐都需要推断。此外&#xff0c;仅用全局特征来表示图像和标记是不…

Linux-计算机网络-epoll的LT,ET模式

一.epoll的LT和ET模式介绍 epol 对文件描述符有两种操作模式:LT(Level Trigger&#xff0c;电平触发)模式和 ET(EdgeTrigger&#xff0c;边沿触发)模式。LT模式是默认的工作模式。当往epol 内核事件表中注册一个文件描述符上的 EPOLLET 事件时&#xff0c;epoll将以高效的 ET …

新160个crackme - 087-d4ph1-crackme2

运行分析 需破解Name和Serial PE分析 ASM程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida找到关键字符串 INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4) {HICON IconA; // eaxint v5; // ediunsigned int v6; // ebxchar v7; // a…

leetcode 303.区域和检索-数组不可变

1.题目要求: 2.题目代码: class NumArray { public:vector<int> array;NumArray(vector<int>& nums) {array nums;}int sumRange(int left, int right) {int sum 0;while(left < right){sum array[left];left;}return sum;} };/*** Your NumArray obje…

【SVM手把手推导】对偶问题应用之支持向量机SVM(Hard Margin)

1. 对偶问题应用之支持向量机SVM 1.1 SVM 设给定数据集&#xff1a; { ( s i , y i ) : y i ∈ { 1 , − 1 } , i 1 , ⋯ , m } \{(\mathbf{s}^i,y^i):y^i\in\{1,-1\},i1,\cdots,m\} {(si,yi):yi∈{1,−1},i1,⋯,m}&#xff0c;我们想要找到一个决策超平面&#xff08;decis…

大数据技术的前景如何?

在当今数字化迅猛发展的时代&#xff0c;大数据技术的前景显得尤为广阔。随着数据量的激增&#xff0c;如何有效利用这些数据成为了各行各业关注的焦点。未来五年&#xff0c;大数据技术的发展趋势可以从市场规模、技术融合、行业应用和政策支持等多个方面进行深入分析。 1. 市…

【STM32】单片机ADC原理详解及应用编程

本篇文章主要详细讲述单片机的ADC原理和编程应用&#xff0c;希望我的分享对你有所帮助&#xff01; 目录 一、STM32ADC概述 1、ADC&#xff08;Analog-to-Digital Converter&#xff0c;模数转换器&#xff09; 2、STM32工作原理 二、STM32ADC编程实战 &#xff08;一&am…

推荐一款全新的视频编辑软件:CapCut剪映国际版

CapCut是一款全新的视频编辑应用程序&#xff0c;提供了各种功能和工具&#xff0c;让用户可以轻松地创建专业级别的视频。这款应用程序非常易于使用&#xff0c;功能强大&#xff0c;可供任何水平的用户使用。 CapCut包含了各种视频编辑工具&#xff0c;可以添加各种特效、滤镜…

提升用户体验优化全攻略

内容概要 用户体验&#xff08;UX&#xff09;在当今数字化时代扮演着举足轻重的角色。良好的用户体验不仅决定了用户对产品的满意度&#xff0c;还有助于提高转化率与客户忠诚度。因此&#xff0c;深入理解用户体验的重要性是每一个设计师和产品经理必须掌握的基础。在这一部…

关于springboot跨域与拦截器的问题

今天写代码的时候遇到的一个问题&#xff0c;在添加自己设置的token拦截器之后&#xff0c;报错&#xff1a; “ERROR Network Error AxiosError: Network Error at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:112:14) at Axi…

SDK和API

什么是SDK&#xff1f; SDK就像是一个超级工具箱&#xff0c;里面装满了各种工具、说明书和配件&#xff0c;帮你快速、方便地完成一项工作。比如&#xff0c;你要搭建一个乐高模型&#xff0c;SDK就是那个包含了所有乐高积木、拼装图纸、甚至一些特殊工具的大盒子。 什么是A…

【错误描述:“L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误”】

解决办法&#xff1a; 一、检查并更改网络协议 &#xff08;如果网络协议更改完成&#xff0c;还是链接失败&#xff0c;直接看 第二点&#xff09; 1、打开网络和Internet 设置 2、找到更改适配器选项 3、先择你要链接VPN&#xff0c;右键选择属性&#xff0c;之后选择安…

【网络】2.TCP通信

TCP通信 server1. 创建套接字2. 填充套接字3. 将套接字和监听文件描述符绑定4. 将_listensock设置为监听状态5. 启动服务器accept()函数read()函数 Server启动client1. 创建套接字2. 填充套接字connect()函数 3. 通过文件描述符向服务端发送信息 client启动 server server的启…

【ArcGISPro】宣布推出适用于 ArcGIS 的 AI 助手

此次分享了ESRI正在开发新的“AI 助手”来扩展ArcGIS应用程序&#xff0c;并且使用经过专门培训、提示工程和 LLM的“AI 助手”为这些应用程序提供特定技能。并且以视频的方式展示了如何使用生成式 AI 在ArcGIS应用程序中自动化和加速工作流。最后表示这些 “AI 助手”将在 202…

Ansible基本使用

目录 介绍 安装 inventory-主机清单 分组 子组 modules-模块 command shell script file copy systemd yum get_url yum_repository user mount cron 介绍 ansible是基于python开发的自动化运维工具。架构相对比较简单&#xff0c;仅需通过ssh连接客户机执行…

volatile如何保证可见性和禁止指令重排序?

当线程对volatile修饰的变量进行写操作时&#xff0c;JMM会插入一个写屏障&#xff0c;会强制的将本地内存中的数据写到主内存中 当线程对volatile修饰的变量进行读操作时&#xff0c;JMM会插入一个读屏障&#xff0c;会强制的让本地内存中数据失效&#xff0c;重新到主内存中读…

AUTOSAR_EXP_ARAComAPI的6章笔记(4)

☞返回总目录 相关总结&#xff1a;《AUTOSAR 自适应应用中原始数据流传输的使用方法》总结 6.4 原始数据流传输的使用方法 本章描述了原始数据流&#xff08;RawDataStreams&#xff09;在 AUTOSAR 自适应应用程序中的使用方法。 目前&#xff0c;原始数据流传输在单播 / …

input子系统的框架和重要数据结构详解

#1024程序员节 | 征文# 往期内容 I2C子系统专栏&#xff1a; 专栏地址&#xff1a;IIC子系统_憧憬一下的博客-CSDN博客具体芯片的IIC控制器驱动程序分析&#xff1a;i2c-imx.c-CSDN博客 – 末篇&#xff0c;有往期内容观看顺序 总线和设备树专栏&#xff1a; 专栏地址&#…

【Linux:网络基础】

网络协议&#xff1a; 协议实际上可以称为一种“约定”&#xff0c;通过网络通信中的数据约定&#xff0c;不同主机必须遵循相同的网络协议才可以实现通信。 协议即为通信双方都认识的结构化的数据类型 协议分层 协议的本质也是软件&#xff0c;在设计上为了更好的进行模块…

C++刷怪笼(9)继承

目录 1.前言 2.正文 2.1继承的概念和定义 2.1.1继承的概念 2.1.2继承的定义 ​编辑 2.1.3继承类模板 2.2基类和派生类间的转换 2.3继承中的作用域 2.3.1隐藏规则 2.4派⽣类的默认成员函数 2.4.1个常⻅默认成员函数 2.4.2实现⼀个不能被继承的类 2.5继承与友元 2.…