ajax异步请求

AJAX介绍

AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法。

AJAX 基于 JavaScript 和 HTTP 请求(HTTP requests)的,因为AJAX 通过在后台与服务器交换少量数据的方式,允许网页进行异步更新。即在不重载整个页面的情况下,对网页的一部分进行更新,通过 AJAX,你可以创建更好、更快以及更友好的 WEB 应用程序。

当然,Ajax也不是任何资源都可以调用,虽然它可以调用动态页面、静态页面,也可以调用json对象,但是由于浏览器无法解析二进制文件,故调用图片等时就会报错。在调用json对象时,须使用eval("(" + 返回的对象 + “)”); ,否则无法解析对象的资源。

$.ajax()使用

项目中,对于使用 $.ajax 获取后台数据是很简单的,根据后台给的接口文档,直接调用就好了。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Ajax 请求</title><script src="./jquery.min.js"></script>
</head>
<style>.result{width:200px;height: 200px;border:1px #0f0 solid;margin-bottom: 20px;}
</style>
<body><button type="button">使用 ajax请求 获取数据</button><div class="result"></div><script>$(function(){$('button').on('click',function(){//使用 Ajax 请求方式;$.ajax({type:'POST',  //请求类型url:'/getList',  //请求路径dataType:'json',  //数据类型data:{  //提交的参数id:1},success:function(data){  //请求成功后的回调$('.result').html(data);},error:function(XMLHttpRequest, textStatus, errorThrown){  //请求失败后的回调console.log(textStatus);}})});});</script>
</body>
</html>
$.ajax() 常用参数
  • type 类型:String , 默认值: “GET”。
    请求方式 (“POST” 或 “GET”), 默认为 “GET”。
    注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

  • url 类型:String
    默认值: 当前页地址。发送请求的地址。

  • async 类型:Boolean , 默认值: true。
    默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
    注意:同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

  • beforeSend(XHR) 类型:Function
    发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。
    XMLHttpRequest 对象是唯一的参数。
    这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。

  • cache 类型:Boolean 默认值: true
    dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。
    jQuery 1.2 新功能。

  • data 类型:String
    发送到服务器的数据。将自动转换为请求字符串格式。
    GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。
    如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 ‘&foo=bar1&foo=bar2’。

  • dataType 类型:String
    预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。
    在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

    1. “xml”: 返回 XML 文档,可用 jQuery 处理。
    2. “html”: 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
    3. “script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 “cache” 参数。
      注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
    4. “json”: 返回 JSON 数据 。
    5. “jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
    6. “text”: 返回纯文本字符串
  • success 类型:Function 这是一个 Ajax 事件。
    请求成功后的回调函数。
    参数:由服务器返回,并根据 dataType 参数进行处理后的数据;描述状态的字符串。

  • error 类型:Function 这是一个 Ajax 事件。
    默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。
    有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。
    如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 “timeout”, “error”, “notmodified” 和 “parsererror”。

$.ajax 使用form表单提交 —— 使用FormData对象
// 在使用 new formData() 时,在html 的表单标签中加入 enctype="multipart/form-data"  属性。var formData = new FormData();formData.append('uploadPic', $("#upfile")[0].files[0]);
$.ajax({url:"/submitInfor",type:"post",data:formData ,processData:false,  //设置为false 是data值是FormData对象,不需要对数据做处理。contentType:false,  //设置为false 是表单构造了FormData对象,且已声明了属性enctype="multipart/form-data"success:function(data){console.log(data);},error:function(err){alert(err);}
});

上面代码中使用 formData 对象提交数据,方便提交 文件 类型的数据。

参考文档 : https://www.cnblogs.com/zhuxiaojie/p/4783939.html

$.ajax 使用form表单提交 —— 使用 表单序列化
$.ajax({url:"/submitInfor",type:"post",data: $('form').serialize(),  //使用表单序列化提交数据success:function(data){console.log(data);},error:function(err){alert(err);}
});

注意:表单里面的值只能为字符串,要提交的input标签中需要有 name 属性。

当前ajax的功能,还有许多,此处不再叙述,有兴趣可以查看下面文档:
http://www.w3school.com.cn/jquery/ajax_ajax.asp

如有什么疑问,可以在下方评论留言,一起学习!!!

在痛苦中学会成长,在学习中寻找快乐!!!

ajax异步请求——form表单提交 及 表单序列化提交相关推荐

  1. form 表单提交时用ajax异步请求导致ajax请求结果无法接收问题

    1.背景描述,有个公司内部用的小系统,不想大动干戈用太多前端框架,就用HTML5写了个登陆页面,刚开始想着用form表单提交登陆账户信息.后来因为前后端分离,并且统一用ajax调用后台服务交互数据,因 ...

  2. maven工程 java 实现文件上传 SSM ajax异步请求上传

    java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: 1 < ...

  3. python django异步访问_初试Ajax异步请求(基于Django框架)

    概要: Ajax异步请求数据之前就听朋友提起过,但是之前一直没有什么机会使用这个技术,就没有去了解,后面在做网站评论这一功能时,为了使用户评论之后不用刷新网页就能够看到刚刚评论的数据,所以决定使用Aj ...

  4. php原生的异步请求,原生JavaScript实现Ajax异步请求

    ajax现在是一种非常流行的技术,现在虽然可以利用JQuery或者一些第三方插件甚至微软提供的一些控件可以方面的实现ajax功能,但是明白其原理也是非常重要的,下面是来使用纯javascript实现获 ...

  5. JSP同步请求和html+ajax异步请求的两种方式

    war包:包括所有的项目资源,只要从浏览器发起的都是属于请求,然后把资源响应给浏览器,解析显示出来. 方式一:HTML+ajax(跳转静态html也是属于请求响应,把整个页面响应给浏览器.) html ...

  6. javaWeb基础六:JQuery—Ajax异步请求

    JQuery 之 Ajax 异步请求 1.1 Ajax简介 1.1.1 不使用Ajax存在的问题 在发送请求得到响应时,我们常常只需要刷新网页局部的数据,而不是整个网页的资源(在网页资源过大时,效率会 ...

  7. AJAX 异步请求详细教程

    文章目录 AJAX 异步请求 简介 Jquery 版 Ajax $.ajax() -- Jquery提供的 ajax 函数 注册验证用户名是否可用 $.get() 与 $.post() Ajax 返回 ...

  8. ajax异步请求刷新layui表格

    ajax异步请求刷新Layui表格数据 今天遇到一个小问题,向后端传一个bean插入到数据库后,在前端页面同步显示.刚开始直接用from表单把数据传给后台进行插入操作,但是这样前端不能及时接收到后端完 ...

  9. Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数【含代码】)- 案例篇

    文章目录 Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数[含代码])- 案例篇 效果截图: 重要代码: 附:全部HTML代码: Ajax异步请求(重渲染DOM元素时,如何自动调 ...

最新文章

  1. c++ 类的定义与使用
  2. SCRIPT1028:缺少标识符、字符串或数字 jquery ajax
  3. 面试被问烂的 Spring IOC(求求你别再问了)
  4. css3-1 css3游戏介绍、css3样式和优先级
  5. Python 进阶_生成器 生成器表达式
  6. 高效地加载图片(一) 高效地加载大图
  7. Pixhawk代码分析-姿态解算篇C
  8. /etc/shadow文件
  9. 在Windows10上安装WSL使用binwalk命令
  10. linux切换目录使用命令,linux命令切换目录的使用方法
  11. win7焦点总是不停丢失的解决方法
  12. centos6.0安装中文输入法
  13. SQL Management Studio Express 安装缺少MSXML6解决
  14. [面试] C/C++ 语法 —— 内存与操作系统
  15. matlab比较判断简写,MATLAB一词来自( )的缩写。
  16. MinIO 快速入门
  17. 完美数——C++代码及思路分析 leetcode507
  18. Python图片文字识别
  19. 【效率工具】markdown文档自动同步到印象笔记evernote
  20. HTML——Header:请求头参数详解

热门文章

  1. 2021年广西贵港高考成绩查询6,2021年贵港高考状元是谁分数多少分,历年贵港高考状元名单...
  2. latex画流程图例子详解,如何画转折线,运行不出来?
  3. 修改虚拟机下的网络和ip设置
  4. 利用“秋天的第一杯奶茶”热点,日引流加粉50+,复盘如何背靠支付宝借花献佛
  5. 【win11更新到22H2,突然开始菜单打不开】
  6. 清风数学建模代码笔记3(更新课_2
  7. 第二十八章 Caché 命令大全 TSTART 命令
  8. 预测未来八小时降水情况的神经网络天气模型
  9. BOM、body的位置属性
  10. linux系统日志的查看和采集