同步访问
当客户端向服务器发送请求时,服务器在处理过程中,浏览器只能等等,效率偏低
异步访问:
当客户端向服务器发送请求时,服务器在处理过程中,客户端可以做其他的操作,不需要一直等待,效率偏高
AJAX优点
1 异步 访问
2 局部 刷新
使用场合:
1 搜索建议
2 表单验证
3 表单提交 2 AJAX的核心对象 - 异步对象(XMLHttpRequest)
1 什么是XMLHttpRequest
简称为xhr
称为异步对象,代替浏览器向服务器发送请求并接收响应
xhr 是由JS来提供
2 创建异步对象(xhr)
主流的异步对象是 XMLHttpRequest 类型的,并且主流浏览器都支持(IE7+,chrome,Firefox,Safari,Opera) 全部支持,
但在Ie低版本浏览器中(ie6以及以下),就不支持 XMLHttpRequest,需要使用 ActiveXObject()来创建异步对象 支持 XMLHttpRequest :new XMLHttpRequest()
不支持 XMLHttpRequest: new ActiveXObject('Microsoft.XMLHTTP') 3 xhr 的成员
4 AJAX的操作步骤
1 GET请求
1 创建xhr 对象
2 创建请求 - open()
3 设置回调函数 - onreadystatechange
判断状态并且接收数据
4 发送请求-send() 1 方法 - open()
作用:创建请求
语法:open(method,url,async)
method : 请求方法,取值为 'get'或'post'
url :请求地址,字符串
async:是否采用异步的方式发送请求
true: 使用异步方式发送请求
false:使用同步方式发送请求
ex:
xhr.open('get','/server',true)
2 属性 - readyState
作用:请求状态,通过不同的请求状态值来表示xhr与服务器的交互情况
由 0-4 共5个值来表示5个不同的状态
0 : 请求尚未初始化
1 :xhr已经与服务器建立连接
2 :服务器端已经开始接收请求
3 : 请求正在处理中
4 : 响应已完成
3 属性 - status
作用:表示服务器端的响应状态码
200: 表示服务器正解处理所有的请求以及给出的响应
404: 请求资源不存在
500:服务器内部错误
4 属性 - responseText
作用:服务器端的响应数据
5 事件 - onreadystatechange
作用:每当xhr的readyState属性值发生改变的时候要触发的操作 - 回调函数
在该函数中,只有当readyState的值为4并且status的值为200的时候,就可以正常的接收responseText了
6 方法 - send()
作用:通知xhr 向服务器发送请求
语法:send(body)
body:表示请求的主体
get请求:是没有请求主体的,所以body的值为null
xhr.send(null)
post请求:是没有请求主体的,所以body的位置处要表示请求数据
xhr.send('请求数据')
xhr.send('参数=值&参数=值')
2 POST 请求
1 请求提交的数据要作为 send()的参数进行提交 xhr.send('参数 = 值&参数=值')
2 修改请求消息头
在AJAX中,提交POST请求时,AJAX默认将 Content-Type请求消息头的值修改为"text/plain"了,
所以导致数据无法正常提交
解决方案:将 Content-Type的请求消息头再修改回"application/x-www-form-urlencoded"即可
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
Content-Type: application/x-www-form-urlencoded

ajax _flask的更多相关文章

  1. jQuery之ajax实现篇

    jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

  2. Ajax及跨域

    概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...

  3. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  4. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  5. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  6. 调用AJAX做登陆和注册

    先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...

  7. Ajax 概念 分析 举例

    Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...

  8. ajax

    常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...

  9. 学习笔记之MVC级联及Ajax操作

    由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...

随机推荐

  1. SpringCloud学习成长之十三 断路器聚合监控

    上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command.当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了.这就 ...

  2. Docker 跨主机网络 overlay(十六)

    目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...

  3. 图像Resize中0.5像素中心对齐的问题

    目录 0.5像素对齐的问题 0.5像素对齐的问题 1. 问题提出 在进行图像缩放时,偶尔会看到一些比较奇怪的代码,其中有一个就是0.5像素中心对齐的问题,例如在OpenCV线性插值的代码中有类似如下操 ...

  4. Linux 安装环境初始化检查 安装Nginx

    一 .阿里云 centos 6.8 32 位裸环境 实现:Linux Nginx mysql php redis 查看当前安装的服务 [root@iZgahlk1l73998Z etc]# servi ...

  5. 关于远程链接 redis的坑·

    今天遇到了一个问题,在redis.conf 中 将 bind: 注释掉bind 127.0.0.1 仍然不行 其实是要把bind 127.0.0.1 改为 0.0.0.0 才行 下面附赠详细过程 查看 ...

  6. Jmeter逻辑控制器: If控制器的解读

    Jmeter官网其实有很详细的文档,点此跳转到官网,下面我来解读一下官网的文档,如有错误,欢迎指出. 一.官网解读 Name 在结果树中显示的名字. Comments 备注.相当于代码中的注释. Ex ...

  7. ajax与jsonp中的几个封装函数

    首先是ajax里的get 在页面上添加几个标签用作测试 <body> <input type="text" id="user"> < ...

  8. SysTick 定时实验(中断)

    实验目的:利用 SysTick 产生 1s 的时基,LED 以 1s 的频率闪烁. 编程要点 1.设置重装载寄存器的值 2.清除当前数值寄存器的值 3.配置控制与状态寄存器 过程 我们创建了两个文件: ...

  9. SAS学习笔记37 宏程序中parmbuff选项

    该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...

  10. 通过命令行新建qt项目,并编译打包

    ref: https://blog.csdn.net/weixin_42837024/article/details/81945656 平台 :Ubuntu 18.04 QT版本   :5.9.1 ( ...