发送Ajax get请求详解

news2024/11/22 16:03:12

发送AJAX get请求,前端代码:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>ajax get请求</title>

</head>

<body>

        <script type="text/javascript">

            window.onload = function () {

                document.getElementById("btn").οnclick= function () {

                    //测试程序

                    // console.log("发送ajax get请求")

                    //发送ajax请求

                    //1.创建ajax核心对象XMLHttpRequest

                    var xhr = new XMLHttpRequest();

                    //2.注册回调函数

                    xhr.onreadystatechange = function () {

                        //这个回调函数会被调用多次

                        //状态码0--->1被调用1次

                        //状态码1--->2被调用1次

                        //状态码2--->3被调用1次

                        //状态码3--->4被调用1次

                        console.log(xhr.readyState);

                        //当XMLHttpRequest对象的readyState的状态码是4的时候,表示响应结束了

                        //以下两种写法都是可以的

                        /*

                        if (xhr.readyState == 4) {

                        }*/

                        if (this.readyState == 4){

                            //程序运行到此,响应结束

                            //console.log("响应结束了")

                            //响应结束之后,一般会有一个HTTP的状态码,HTTP状态码是HTTP协议的一部分,

                            //是HTTP协议规定的服务器响应之后都会有一个状态码

                            //状态码包括:200表示成功了;404表示资源没找到;500表示服务器内部错误

                            //此处可以获取HTTP状态码

                            //获取状态码有两种方式如下:

                            //xhr.status 或 this.status

                            //判断状态码

                            if (this.status == 404) {

                                alert("你访问的资源没找到!请检查访问路径")

                            }else if (this.status == 500){

                                alert("服务器内部错误,请联系程序员")

                            }else if (xhr.status == 200){

                                //alert("访问成功!")

                                //通过XMLHttpRequest对象的responseText的属性来获取服务器响应的信息

                                //不管服务器响应回来的信息(信息包括:普通文本、HTML、XML或JSON...)是什么,

                                                     //responseText都以普通文本的形式获取

                                //alert(xhr.responseText);//将服务器的响应信息获取到并alert,也可以写this.responseText

                                //把响应信息放到div图层当中渲染

                                //注意这里的innerHTML是JavaScript中的语法,与ajax的XMLHttpRequest对象无关,

                                //innerHTML会把后面的普通文本当做一段HTML代码来执行,注意innerHTML与innerText的区别

                                document.getElementById("myDiv").innerHTML = this.responseText;

                            }

                        }

                    };

                    //3.开启通道(open()方法只是让浏览器和服务器建立连接,打开通道,并不会发送请求)

                    //这里调用XMLHttpRequest对象的open()方法

                    //open(method, url, async, user, psw)

                    //method:请求方式,可以是GET,也可以是POST,还可以是其他请求方式

                    //url:请求路径(请求地址)(这是前端服务器发送的请求需要有项目名   "/项目名/xxx")

                    //async:有两个值可选分别是:true或false;true表示该ajax请求是异步请求,false表示该请求是同步请求

                                        //多数情况选择true,特殊情况选择false

                    //user:用户名 psw:密码 是进行身份认证用的,这个主要看服务器的需要,不需要的情况下就省略了

                    xhr.open("GET","/ajax/ajaxrequest1",true);

                    //4.发送请求

                    xhr.send();

                }

            }

        </script>

        <input type="button" value="hello ajax" id="btn">

        <div id="myDiv"></div>

</body>

</html>

发送AJAX get请求,后端代码: 

package com.yjg.ajax.servlet;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

@WebServlet("/ajaxrequest1")

public class AjaxRequest1Servlet extends HttpServlet {

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //模拟出现异常

        //String s = null;

        //s.toString();

        //向浏览器响应信息

        //设置响应内容的类型以及字符集

        response.setContentType("text/html;charset=utf-8");

        //获取响应流

        PrintWriter out = response.getWriter();

        //设置响应内容

        //out对象向浏览器输出信息,在服务器中的代码与以前的一样,

        //只是这个信息被浏览器中的XMLHttpRequest对象的responseText属性接收了

        out.print("<font color='red'>hello ajax!!!</font>");

    }

}

程序正常运行之后的浏览器显示效果:

        

服务器发生异常之后浏览器显示效果:

         

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三十一章 Unity骨骼动画

关于骨骼动画的原理&#xff0c;我们这里不再详细介绍&#xff0c;有不清楚的可以回去看DirectX课程和3dsMAX课程。接下来&#xff0c;我们来讲解一下Unity的骨骼动画系统。Unity 的动画系统基于动画剪辑&#xff08;Animation Clip&#xff09;的概念&#xff0c;它的本质就是…

Linux 安装时,各个分区的作用是什么?

在这里&#xff0c;我说说一开始Linux为什么需要分区。 因为 Linux 是一个多用户操作系统。 多用户意味着一个问题&#xff1a;并非所有用户的操作都是可控的。 而系统正常运行的话&#xff0c;必须要一定的剩余空间。 这也就意味着&#xff1a;如果一个用户自己把空间占满…

MySQL数据库之用户管理

一、数据库用户管理 1.1 新建用户 CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码]; 即&#xff1a;create user 用户名源地址 identified by 密码; 用户名&#xff1a; 指定将创建的用户名 来源地址&#xff1a; 指定新创建的用户可在哪些主机上登录&…

线段树练习题(日程安排表、LC-307、LC-2407、LC-699)

线段树详解&#xff1a;https://leetcode.cn/problems/range-module/solution/by-lfool-eo50/ 文章目录 线段树线段树模板[729. 我的日程安排表 I](https://leetcode.cn/problems/my-calendar-i/)[731. 我的日程安排表 II](https://leetcode.cn/problems/my-calendar-ii/)[732.…

数据库基础及用户管理授权

数据库概念 关系型数据库 数据结构二维表格 库 -> 表 -> 列&#xff08;字段&#xff09;&#xff1a;用来描述对象的的一个属性&#xff1b;行&#xff1a;用来描述一个对象的信息 mysql&#xff08;5.7/8.0&#xff09; maridb ocracle postgresql sqlserver(windows…

2D火焰特效

Unity面片实现火焰效果 一、效果说明 大家好&#xff0c;我是阿赵。这是一个火焰的效&#xff0c;不过它不是粒子做的&#xff0c;是用一个面片做的&#xff0c;可以理解成是2D的特效。这个例子很简单&#xff0c;但可以拓展一下思路&#xff0c;原来除了用序列帧和粒子做动画…

将页面元素隐藏的10种方法

在Web开发中&#xff0c;隐藏页面元素使其视觉不可见是一个非常常见的需求。为了实现这一目标&#xff0c;我们通常会采用多种方法&#xff0c;最常用的例如CSS的display属性&#xff0c;只要设置为node即可隐藏元素。 本文将通过对当前所有可用的隐藏元素的方法做一个总结&…

Flink系列-11、Flink DataStream的Sink

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址&#xff1a;https://flink.apache.org/ 学习资料&#xff1a;https://flink-learning.org.cn/ 目录 Flink在批处…

云效/git 删除特殊字符远程分支

云效/git 删除特殊字符远程分支 一、查看所有分支二、删除分支三、验证 在使用云效时&#xff0c;不小心添加了一个错误分支 de’vdev &#xff0c;在云效手动删除时&#xff0c;报错“找不到分支”&#xff0c;无法删除。只能启动git命令进行查看&#xff0c;将步骤总结如下&a…

【JAVA】#详细介绍!!! 文件操作之文件内容操作(2)!

本文主要是针对文件内容的操作进行展开&#xff0c;文件内容操作无非就两种 1.针对文件进行“读” 2.针对文件进行“写” 目录 文件内容读写的形式 字符流 字节流 文件内容操作 InputStream&#xff1a;以字节流的形式进行读操作 创建方式&#xff1a; FileInputStream的…

2023年深圳CPDA数据分析师认证到这里就对了哦

CPDA数据分析师认证是大数据方面的认证&#xff0c;助力数据分析人员打下扎实的数据分析基础知识功底&#xff0c;为入门数据分析保驾护航。 帮助数据分析人员掌握系统化的数据分析思维和方法论&#xff0c;提升工作效率和决策能力&#xff0c;遇到问题能够举一反三&#xff0c…

MySQL索引的底层实现原理

索引的底层实现原理 数据库索引是存储在磁盘上的&#xff0c;当数据量大时&#xff0c;就不能把整个索引全部加载到内存了&#xff0c;只能逐一加载每一个磁盘块&#xff08;对应索引树的节点&#xff09;&#xff0c;索引树越低&#xff0c;越“矮胖”&#xff0c;磁盘IO次数…

主动式和被动式电容笔的区别在哪?苹果平替笔性价比高的

被动式电容笔与主动式电容笔最大的不同之处在于主动式电容笔具有更加广泛的应用领域&#xff0c;可以与各种种类的电容式屏幕相匹配。随着对电容笔的了解&#xff0c;电容笔的使用也日益广泛。而且平替电容笔的制造工艺已经日趋成熟&#xff0c;正在走向实用&#xff0c;并且已…

易观千帆 | Q1运营报告:手机银行MAU超5.3亿,行业“内卷”超出想象

易观&#xff1a;由中国电子银行网、易观分析联合发布的“2023中国手机银行综合运营报告”显示&#xff1a;在经济企稳回升的大背景下&#xff0c;中国手机银行第一季度综合运营指数季度内呈平稳上升态势&#xff0c;手机银行活跃人数环比增幅逐月递增&#xff0c;促使活跃用户…

Redis主从复制和哨兵模式

Redis主从复制 概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Reds服务器。前者称为主节点(master / leader),后者称为从节点(slave / follower)。 数据的复制是单向的&#xff0c;只能由主节点到从节点。 Master以写为主&#xff0c;Slave…

无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】

目录 视频教程 1. Linux CentOS安装cpolar 2. 创建TCP隧道 3. 随机地址公网远程连接 4. 固定TCP地址 5. 使用固定公网TCP地址SSH远程 本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不…

Go语言的基础语法以及变量和常量

目录 基础语法 行分隔符 注释 标识符 变量 声明 赋值 作用域 常量 声明 iota 基础语法 行分隔符 在Go程序中&#xff0c;一般一行就是一个语句&#xff0c;不像Java等可以在一行写多个语句一样&#xff0c;而且最后也不需要用";"来结尾。 例如&#xf…

【华为OD机试 2023最新 】箱子之字形摆放(C语言题解 100%)

文章目录 题目描述输入描述输出描述备注用例题目解析C语言题目描述 有一批箱子(形式为字符串,设为str), 要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。 例如:箱子ABCDEFG,空地宽度为3,摆放结果如图: 则输出结果为: AFG BE C…

Linux Shell编程入门到实战(六)

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

国考省考结构化面试:整体介绍,考试题型,考试流程,仪表着装,如何备考?

国考省考结构化面试&#xff1a;整体介绍&#xff0c;考试题型&#xff0c;考试流程&#xff0c;仪表着装&#xff0c;如何备考&#xff1f; 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重…