这篇文章是AJAX异步文章的附加一:

主要是讲向服务器提交数据,发送数据之后,服务器接收到响应之后他要做一个处理,上一次我们把提交的地址改到了PersonData()这个需要转义的方法里面,它主要是返回一个josn格式的字符串回去,返回回去的字符串则是通过XMLHttpRequest对象里面的responseText属性去接收,要在onreadystatechange事件里面去接收,而这个事件是由readyState的一个属性里面的值改变则去触发。

这里还需注意一个status这个属性,他表示整个响应的一个状态码,比如说,状态码是200则表示这个响应是成功的,如果状态码是404则表示未找到某个方法或某个页面

图表 1

图表1是通过XMLHttpRequest对象从控制器中获取person数据

图表1是获取数据,下面讲的是通过XMLHttpRequest对象向我们的控制器中提交表单数据

提交表单数据有两种方式,我们先来讲一下第一种方式:

第一种方式:需要指定响应头       只能接收post提交的数据

之前我们在button按钮上面定义了一个postData()的方法,这次我要通过post提交数据

通过XMLHttpRequest对象提交不管通过那种方式提交,都要创建对象(见图表2)注意浏览器兼容性问题

图表 2

XMLHttpRequest对象有一个open()的方法,里面有三个参数,open(method, URL, async)规定请求的类型、URL以及是否异步处理

1、method:请求的类型:get或post

2、URL:文件在服务器上的位置

3、async:true(异步)或false(同步)

然后在来一个send()的方法,提交数据,你要提交数据这里要指明

我们在去控制器里面定义一个接收参数的方法,接收数据的方式提交表单的四种方法都能接收数据,我们这里用第一种方式通过形参的方式接收数据

你要提交数据,你要提交什么数据,是不是提交你页面上填的数据,点击post提交,它就把数据提交到控制器我们刚刚新建接收数据的方法里面(注意断点)。

在postData()方法里面我们还没有去获取数据,那我们就要在提交之前要把这个数据获取到

这就跟之前的表单提交不一样了,之前的表单填什么就提交什么

这里我们就要获取数据,获取我们在页面上把我们要填写的文本框获取到,数据获取完之后,先定一个变量,把我们获取到的元素进行一个拼接,然后把获取到的数据放到send()里面去提交

注意:在发送请求之前要设置一个相应头,不然则接收不到数据(见图表3)注意:两边的的命名要一样,不然会报错

图表 3

通过post方法把数据提交到新建接收数据的方法里面,数据提交并且有一个返回值,它有返回值了我们就去接收数据

这里接收数据和之前接收数据一样,通过onreadystatechange事件去接收

如果readyState等于4并且status等于200,就直接把接收的值直接输入到控制台里面(全部代码见图表4)

图表 4

这个方法里面就是把我们页面上的数据获取到,然后在提交到控制器里面的一个方法,然后这个方法对字符串进行一些处理

第二种方式:通过创建一个FormData()

先获取数据

在通过XMLHttpRequest对象来进行响应,注意浏览器的兼容性

再是open和send(open和send与第一种方式一样,要么通过post,要么通过get)

Send()还可以通过创建一个FormData(),然后把FormData放到send里面,通过这种方式他就不需要设置一个响应头的

前面获取了数据,我们是要把数据通过send()提交过去,之前我们是把数据拼接成一个字符串,现在我们要把他放在一个FormData里面

之前我们说过有两种方式,一个是拼接到url后面[url?name=zhangdan & sex=nan]

除了拼接到url后面,我们之前还学过formData()的方式

先来一个formData的变量,在通过new的关键字去创建一个formData(),创建这个对象,再把我要传递过去的数据通过一个append()的方法,append()的方法他可以设置两个参数,第一个参数是你要传递过去的键,第二个参数就是一个值,通过键值对的形式把数据全部放到formData()里面,再把formData放到send()里面提交过去

把数据提交过去则有一个返回在通过onreadystatechange事件去接收,接收的方式与第一种接收数据的方式一样

(见图表5和图表6)

图表 5

图表 6

这两种方式都是通过post去提交的,这两种方式一个是把传递的参数通过字符串进行一个拼接然后提交过去,字符串这样拼接则需要设置一个响应头,另一种方式,则不需要设置响应头,把数据放在formData里面,然后把我要提交的数据放在send里面提交过去

AJAX异步-向服务器提交数据相关推荐

  1. java web 利用ajax 异步向后台提交数据

    前台界面的js代码实现; <script>$(function(){$("#username").focus(function(){$("error" ...

  2. BJUI使用ajax异步表单提交时后台action要加@ResponseBody

    场景 在使用BJUI的ajaxform异步表单提交时,后台直接使用 @RequestMapping时不能正常回显消息. 知识储备 ajaxform异步表单提交 通过data属性使用(带验证): < ...

  3. android提交服务器,Android向WEB服务器提交数据

    说明: 1.本系列博文是博主在学习传智播客Android培训视频的学习笔记 2.当然博文不只是罗列视频上讲的知识点,通过查阅资料对一些知识点进行了详细的讲解 3.由于是初学,难免有疏漏之处,还请不吝赐 ...

  4. php ci post 请求,ci检测是ajax还是页面post提交数据的方法

    ci检测是ajax还是页面post提交数据的方法 PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用.以下是小编为大家搜索 ...

  5. ajax请求向服务器修改数据,用Jquery实现可编辑表格并用AJAX提交到服务器修改数据...

    下面是js Code: $(function() { // 相当于在页面中的body标签加上onload事件 $(".caname").click(function() { // ...

  6. ajax提交到mysql_利用ajax的方式来提交数据到后台数据库及交互功能

    怎么样用ajax来提交数据到后台数据库,并完成交互呢????? 一.当我们在验证表单的时候,为了阻止把错误的也发送到服务器,我们通常这样设置: $(function(){ var isusername ...

  7. Android之使用HTTP协议的Get/Post方式向服务器提交数据

    1.Get方式 方法:通过拼接url在url后添加相应的数据,如:http://172.22.35.112:8080/videonews/GetInfoServlet?title=霍比特人&t ...

  8. JS Ajax异步请求发送列表数据后面多了[]

    还在苦逼的写代码,这里就不详细了,直接抛出问题: 如图所示: 前端ajax请求向后端发送数据的时候,给key添加了[]出现很多找不到原因, 后面在说 解决方法: 暂时先这样记录一下,下次方便查找,好了 ...

  9. 使用libcurl以Post方式向HTTP服务器提交数据

    一.上传数据 如题: char name[] = "jgood"; char address[] = "Hangzhou"; 上传这两个数据到http://lo ...

最新文章

  1. android 5秒后进入,Android/Java:如何在5秒后停止下载?
  2. docker 限制cpu使用率
  3. WINCE下如何设置/删除/查询这些环境变量
  4. 计算机文件夹报告范文,2020年计算机实验报告打印(例文).docx
  5. LeetCode MySQL 1435. 制作会话柱状图
  6. linux内核那些事之buddy
  7. css模块化配置---webpack4+less
  8. /dev/mapper/VolGroup-lv_root空间爆满解决
  9. oracle12c linux安装教程
  10. Android简单实现汉字笔顺动画——Java版
  11. origin汉字问题与特殊符号
  12. mysql积分表和业务表_积分相关数据库表该如何设计?业务表和积分明细表该如何匹配上...
  13. 今日头条数据分析师分享有感
  14. 霆智服务器安装Windows系统,无人值守全自动安装windows系统
  15. 为什么用IP查询网查询的自己的外网IP和用tracert命令查询的自己的出口IP不一致?
  16. 【案例设计】音频可视化 解析与设计
  17. SKU 和 SPU 有什么区别?
  18. LayUI使用Echarts实现统计图
  19. 【USB启动盘创建工具】Rufus
  20. 电脑网页下载bilibili 视频

热门文章

  1. 【iCore4 双核心板_ARM】例程二十三:LWIP_HTTP实验——网页服务器
  2. 【计算机视觉】期刊整理
  3. Redis分布式缓存 教程以及DEMO
  4. 安博中程研讨会-HTML5引领2012技术热潮
  5. 微软沈向洋自述:在实现职业目标的道路上,我得到了七个教训
  6. ICCV 2019 Best Paper :SinGAN 解读,强烈推荐!
  7. 联机手写汉字识别,基于新型RNN网络结构的方法
  8. 强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿
  9. CVPR 2019 | 微软亚研院提出用于语义分割的结构化知识蒸馏
  10. 收藏 | 机器学习中需要了解的 5 种采样方法