携带数据的Ajax POST请求

news/2024/10/18 3:27:27/

前端页面代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>发送ajax POST请求 看如何携带数据</title>
    <script type="text/javascript">
        window.onload = function () {
            document.getElementById("btn").onclick = function () {
                //发送ajax POST 请求
                //1.创建ajax核心对象
                var xhr = new XMLHttpRequest();
                //2.注册回调函数
                xhr.onreadystatechange = function () {
                    if (this.readyState == 4) {
                        if (this.status == 200) {
                            document.getElementById("myDiv").innerHTML = xhr.responseText;
                        }
                        else {
                            alert(this.status)
                        }
                    }
                };
                //3.打开通道
                xhr.open("POST","/ajax/request3",true);
                //4.发送请求
                //发送POST请求需要设置请求头的内容类型,下行代码很重要,有了它就能模拟form表单提交POST请求
                //还需要注意这行代码的位置必须是放到打开通道的代码之后,放到"打开通道"之前不可以。
                xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                //使用JS代码获取用户填写的信息
                var userName = document.getElementById("userName").value;
                var password = document.getElementById("pwd").value;
                //xhr.send("注意:放在此处的数据就是在请求体中提交的数据,这里的格式需要遵循HTTP协议:name=value&name=value")
                xhr.send("username="+ userName +"&password=" + password)
            }
        }
    </script>
</head>
<body bgcolor="#fff8dc">
    用户名:<input type="text" id="userName"><br/>
    密码:<input type="password" id="pwd"><br/>
    <button id="btn">点击按钮发送ajaxPOST请求</button>
    <div id="myDiv"></div>
</body>
</html>

服务端代码:

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("/request3")
public class AjaxRequest3Servlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        //解决post请求中文乱码问题
        request.setCharacterEncoding("UTF-8");
        //接收数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //设置响应内容的类型和字符集
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.print("用户名:" + username + ";密码:" + password);
    }
}
 

程序运行之后浏览器页面显示效果:

                

 


http://www.ppmy.cn/news/64607.html

相关文章

OBCP考点总结一

1.alter system stop server 192.168.2.64:2882 select * from __all_server Stop Server 后该 Server 的状态仍为 Active &#xff0c;但 stop_service_time的值由 0 变为 Stop Server 的时间点。 kill -15 pid/observer select * from __all_server 状态变为了 inactive…

【Linux下】线程概念

文章目录 【Linux下】线程概念理解线程线程操作接口线程和进程线程和进程的关系代码验证 线程优点线程缺点线程异常线程用途 【Linux下】线程概念 理解线程 一般的书上都是这么描述线程的 线程&#xff1a;是在进程内部运行的一个执行分支&#xff0c;属于进程的一部分&#…

基于AT89C51单片机的计算器设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87772564 源码获取 主要内容: 本设计是基于51系列的单片机进行的设计,可以完成计算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。设计过…

Sleuth和zipkin

1、Sleuth是什么 为什么会出现这个技术&#xff1f;要解决哪些问题&#xff1f; 在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果&#xff0c;每一个前段请求都会形成一条复杂的分布式服务调用链路&am…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

MySQL基础(十六)变量、流程控制与游标

1. 变量 在MySQL数据库的存储过程和函数中&#xff0c;可以使用变量来存储查询或计算的中间结果数据&#xff0c;或者输出最终的结果数据。 在 MySQL 数据库中&#xff0c;变量分为系统变量以及用户自定义变量。 1.1 系统变量 1.1.1 系统变量分类 变量由系统定义&#xff…

Vue Test Utils前端单元测试

含义 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证。在提供了经过测试的单元的情况下&#xff0c;系统集成过程将会大大地简化。流行框架 Mocha (https://mochajs.cn/)、Jest (https://www.jestjs.cn/) Mocha Chai…

最强算法视频公开课!(内容硬核,完全免费!

和录友们汇报一下&#xff0c;代码随想录算法公开课已经更新完毕了。 由我亲自录制了140期算法视频&#xff0c;覆盖了 《代码随想录》纸质版上全部题目的讲解。 视频全部免费开放在B站&#xff1a;代码随想录 目录就在视频播放的右边&#xff0c;完全按照代码随想录的顺序讲…