【JavaEE】_ajax构造HTTP请求

目录

1. ajax简述

2. ajax构造HTTP请求

2.1 jquery库的引入

2.2 ajax构造HTTP请求格式

3. ajax构造GET请求实例

4. ajax构造POST请求实例


本专栏关于form表单构造HTTP请求一文中已经提到:form表单构造法只支持GET和POST,且会触发页面跳转。

原文详情链接如下:

【JavaEE】_form表单构造HTTP请求-CSDN博客

为了解决这两个问题,又引出了ajax构造HTTP请求的方法:

1. ajax简述

1.ajax本质是用js提供的API来构造HTTP请求

同时对于服务器返回给客户端的响应,同样可以使用js灵活处理,给前端代码带来了更多的可操作空间;

2. 当今网站的的主体都是通过ajax的方式进行交互的;

3. 浏览器原生也提供了ajax的API,但并不方便实用,步骤繁琐。因此有一些第三方库封装了ajax,本专栏使用 jquery 库封装的ajax

2. ajax构造HTTP请求

2.1 jquery库的引入

可从以下链接引入jquery库:

https://www.bootcdn.cn/jquery/

操作如下:

2.2 ajax构造HTTP请求格式

1. $ 是一个jquery定义的全局变量名,可以通过这个变量调用一些方法,使用jquery中的API;

2. $.ajax();中传递的参数是一个对象,在js中,{}表示一个对象,在{}内部使用键值对描述属性名与属性值:

3. 对象的属性值可以是一个函数,比如可以写为:

    <script>
        // 此时函数名就为callback
        function callback(body){

        }
        $.ajax({
            type: 'get',
            url: 'https://www.sogou.com/abc.html',
            success:callback,
        });
    </script>

但是这种写法并不常见,通常会使用匿名函数的形式

    <script>
        $.ajax({
            type: 'get',
            url: 'https://www.sogou.com/abc.html',
            success:function(body){
                
            }
        });
    </script>

此处函数并不是立即返回的,而是服务器返回200这样的响应时才会执行到success,即:

success执行时机不是程序员自己能控制的,而是在合适的时候自动被调用的,这样的函数被称为回调函数

常见的回调函数还有:函数指针,Comparable和Comparator,compareTo,compare函数,线程中的run方法等等

4. 函数的参数为body即HTTP响应的body内容,为了方便调试,通常会使用console.log对body进行打印;

5.  此时构造的get请求没有query string,可以直接进行拼接,如:

    <script>
        let value1 = '1';
        $.ajax({
            type: 'get',
            url: 'https://www.sogou.com/abc.html?' + 'key1='+value1,
            success:function(body){
                console.log(body);
            }
        });
    </script>

注意js的定义变量直接使用let进行定义,变量具体类型是根据=后面初始化的值的类型来确定的;

3. ajax构造GET请求实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax</title>
</head>
<body>
    <!-- 1. 引入jquery库 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <!-- 2. 再引入一个script标签用于编写自定义内容 -->
    <script>
        let value1 = '1';
        $.ajax({
            type: 'get',
            url: 'https://www.sogou.com/abc.html?' + 'key1='+value1,
            success:function(body){
                console.log(body);
            }
        });
    </script>
</body>
</html>

运行程序;

可以使用Fiddler抓包查看请求与响应详情:

HTTP请求:

HTTP响应:

4. ajax构造POST请求实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax</title>
</head>
<body>
    <!-- 1. 引入jquery库 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <!-- 2. 再引入一个script标签用于编写自定义内容 -->
    <script>
        let body = {
            key1: 1,
            key2: 2
        };
        $.ajax({
            type: 'post',
            contentType: "application/json",
            data: JSON.stringify(body),
            url: 'https://www.sogou.com/abc.html',
            success:function(body){
                console.log(body);
            }
        });
    </script>
</body>
</html>

注:1. JSON.stringfy()可以将一个js对象转成一个JSON格式的字符串,即把前文的body对象转为了JSON格式的字符串data;

2.注意ajax构造post请求与构造get请求的不同,包括body部分的对象需转为JSON格式字符串,无需url的query string部分等等;

3. 此例为ajax构造的POST请求发送给搜狗服务器,但并不是所有的路径都支持ajax的POST请求,此例仅用于展示ajax构造POST请求的格式。后续自行完成服务器的编写才可以实现相应的服务器配合;

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

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

相关文章

线上线下同时开店管理混乱?EasyBoss ERP升级线下零售订单功能帮你轻松搞定

许多做东南亚本土电商的卖家&#xff0c;会将线下店铺作为业绩增长的一个重要渠道&#xff0c;但是在运营过程中会出现&#xff1a;需要使用多个系统、库存不同步、数据混乱等问题&#xff0c;为了帮助卖家解决这些问题&#xff0c;EasyBoss此前已开发线下零售订单功能&#xf…

【Linux】再谈进程地址空间

目录 一、引入 二、物理内存和外设空间的交互 三、解决页表过大问题 一、引入 我们在往期的博客中有讲解过进程地址空间&#xff1a;【Linux】进程地址空间 但是在上述博客中我们只是对进程地址空间的左边部分详细进行了讲解&#xff0c;下面我们就来谈谈右边的部分&#…

支付功能设计及实现思路

支付功能设计 主要包括&#xff1a;订单表&#xff0c;订单日志表&#xff0c;订单队列&#xff0c;定时任务。 主要考虑&#xff1a;事务性、幂等性、安全性。 表结构设计 订单表&#xff1a; 订单表&#xff0c;最主要的就是订单号、支付状态。 CREATE TABLE t_order (…

十大基础排序算法

排序算法分类 排序&#xff1a;将一组对象按照某种逻辑顺序重新排列的过程。 按照待排序数据的规模分为&#xff1a; 内部排序&#xff1a;数据量不大&#xff0c;全部存在内存中&#xff1b;外部排序&#xff1a;数据量很大&#xff0c;无法一次性全部存在内存中&#xff0c;…

Backtrader 文档学习- 整体架构功能分析理解

Backtrader 文档学习- 架构功能分析理解 1. 概述 backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能&#xff0c;使得用户可以方便地进行策略回测、实盘交易以及数据分析。 backtrader的入口为Cerebro类&#xff0c;该类将所有输入(Data F…

基于Jenkins实现的CI/CD方案

基于Jenkins实现的CI/CD方案 前言 最近基于Jenkins的基座&#xff0c;搭建了一套适用于我们项目小组的持续集成环境。现在把流程整理分享出来&#xff0c;希望可以给大家提供一些帮助和思路。 使用到的组件和版本 组件名称组件版本作用Harbor2.7.3镜像仓库Jenkins2.319.2持…

C++ Primer 笔记(总结,摘要,概括)——第5章 语句

目录 5.1 简单语句 5.2 语句作用域 5.3 条件语句 5.3.1 if语句 5.3.2 switch语句 5.4 迭代语句 5.4.1 while语句 5.4.2 传统的for语句 5.4.3 范围for语句 5.4.4 do while语句 5.5 跳转语句 5.5.1 break语句 5.5.2 continue语句 5.5.3 goto语句 5.6 try语句块和异常处理 5…

http和https的区别(简述)

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;都是用于在客户端和服务器之间传输数据的协议&#xff0c;但它们在安全性方面有重要的区别。 1.HTTP: 概述&#xff1a; HTTP是一种用于传输超文本的协议&#xff08;超文…

前端基础自学整理|DOM树

DOM&#xff0c;文档对象模型&#xff08;Document Object Model&#xff09;&#xff0c;简单的说&#xff0c;DOM是一种理念&#xff0c;一种思想&#xff0c;一个与系统平台和编程语言无关的接口&#xff0c;一种方法, 使 Web开发人员可以访问HTML元素&#xff01;不是具体方…

D6208——双向马达驱动电路芯片,噪声低 内设马达驱动功率晶体管,工作电源电压范围宽用 TTL 逻辑信号直接控制

D6208 是一块单片双向马达驱动电路&#xff0c;它使用TTL电平的逻辑信号就能控制卡式录音机和其它电子设备中的双向马达。该电路由一个逻辑部分和一个功率输出部分组成。逻辑部分控制马达正、反转向及制动&#xff0c;功率输出部分根据逻辑控制能提供100mA&#xff08;典型值&a…

【python】 脚本检查文本里是否包含特殊字符

【python】 脚本检查文本里是否包含特殊字符 完整代码&#xff1a; # 代码片段功能: 检查文本里是否包含特殊字符 # 将utf-8格式文本&#xff0c;先转为16进制格式 # 检查完成&#xff0c;再将16进制格式转为utf-8格式。 import re# 包含特殊字符的字符串 sample "I arg…

当别人在用AI一分钟画几十张图,你还在埋头苦苦设计?AI时代一定要学会和AI共存!

AI绘画即指人工智能绘画&#xff0c;是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分&#xff0c;一个是对图像的分析与判断&#xff0c;即“学习”&#xff0c;一个是对图像的处理和还原&#xff0c;即“输出”。 人工智能通过对数以万计…

数据分析(二)自动生成分析报告

1. 报告生成思路概述 怎么快速一份简单的数据分析报告&#xff0c;注意这个报告的特点&#xff1a; --网页版&#xff0c;可以支持在线观看或者分享HTML文件 --标题&#xff0c;动图&#xff0c;原始数据应有尽有 --支持交互&#xff0c;比如plotly交互画面&#xff0c;数据…

Windows安装PHP及在VScode中配置插件,使用PHP输出HelloWorld

安装PHP PHP官网下载地址(8.3版本)&#xff1a;PHP For Windows&#xff1a;二进制文件和源代码发布 点击下载.zip格式压缩包&#xff1a; 历史版本在Old archives中下载。推荐在Documentation download中下载官方文档&#xff0c;方便学习。 下载完成后在一个顺眼的地方解压压…

net反射

1.1 查找dll文件 Load需要把dll放到程序当前路径加载&#xff0c;也可以读取字符串形式。LoadFrom需要写全路径&#xff0c;如果test1.dll引用了test2.dll&#xff0c;同时也会加载test2.dll进来。LoadFile不会加载test2.dll。 Assembly assembly1 Assembly.Load("DllTe…

互联网加竞赛 大数据疫情分析及可视化系统

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据疫…

Open AI — Sora 如何发挥其魔力 — 近距离观察该技术

OpenAI 的大模型 Sora 可以制作一整分钟的高质量视频。他们的工作成果表明,使视频生成模型更大是为现实世界创建多功能模拟器的好方法。Sora 是一种灵活的可视化数据模型。它可以创建不同长度、形状和大小的视频和图片,甚至可以创建长达一分钟的高清视频。我阅读了 OpenAI 的…

[C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强

【算法介绍】 提升夜间雾霾图像可见度的技术研究&#xff1a;引导APSF与梯度自适应卷积的应用 随着城市化的快速发展&#xff0c;雾霾现象日益严重&#xff0c;尤其是在夜间&#xff0c;雾霾对图像的可见度造成了极大的影响。因此&#xff0c;提升夜间雾霾图像的可见度成为了…

ElasticSearch聚合操作

目录 ElasticSearch聚合操作 基本语法 聚合的分类 后续示例数据 Metric Aggregation Bucket Aggregation ES聚合分析不精准原因分析 提高聚合精确度 ElasticSearch聚合操作 Elasticsearch除搜索以外&#xff0c;提供了针对ES 数据进行统计分析的功能。聚合(aggregation…

一文彻底搞懂JVM垃圾回收算法

文章目录 1. 标记-清除算法&#xff08;Mark and Sweep&#xff09;2. 复制算法&#xff08;Copying&#xff09;3. 标记-整理算法&#xff08;Mark and Compact&#xff09;4. 分代算法&#xff08;Generational&#xff09;4.1 执行流程 1. 标记-清除算法&#xff08;Mark an…