原生ajax写法
ajax1.0,ie9及以下,ie10+支持ajax2.0
ajax2.0比ajax1.0:
1.多了FormData对象,xhr.send(formData) //不能用GET
2.文件上传,文件上传进度 //把<input type="file" />对象set入formData,xhr.upload.onprogress=ev=>{ev.loaded/evtotal}
3.CORS跨域双验证 // 请求头多了ORIGIN,响应头带上"Access-Control-Allow-Origin"
1.0写法,分四步:
1.创建xhr对象
let xhr = new XMLHttpRequest();
2. 设置超时时间(毫秒)
// 2s超时
xhr.timeout = 2000;
3.建立连接
// 方法 URL 是否异步
xhr.open('GET','http://www.qq.com',true);
4.设置http头
//可以设置某些http头信息
xhr.setRequestHeader('Expires', 'Mon, 20 Jul 2029 23:00:00 GMT')
//甚至是一些自定义的头部
xhr.setRequestHeader('amie', 'xxxxxxx')
//但是诸如User-Agent、Referer浏览器是禁止设置的
5.发送请求
//send可以send任意数据类型
xhr.send('内容');
6.接收响应
xhr.onreadystatechange= ()=>{
if(xhr.readyState == 4){
//请求完成了
if((xhr.status>=200&&xhr.status<300)||xhr.status==304){
//请求成功了,拿到返回的数据
var data = xhr.responseText;
}
}
}
7.超时和错误事件
xhr.ontimeout = xhr.onerror = err => {
this.$fui.popup({
message: '连通性测试失败',
type: 'error',
});
this.loading = false;
};
原生ajax写法的更多相关文章
- 原生Ajax写法(GET)
ajax的GET提交方式的原生代码: var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(w ...
- JS 原生ajax写法
<script> //step1.创建XMLHTTPRequest对象,对于低版本的IE,需要换一个ActiveXObject对象 var xhr; if (window.XMLHttpR ...
- 原生ajax与封装的ajax使用方法
当我们不会写后端接口来测试ajax时,我们可以使用node环境创建一个本地服务器. 1.创建一个本地服务器可参考http://www.cnblogs.com/heyujun-/p/6793900.ht ...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- 原生ajax 和jquery ajax 个人总结
AJAX:即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. 通过在后台 ...
- ASP.NET学习笔记(5)——原生Ajax基本操作
说明(2017-11-4 15:32:49): 1. 回北京后又快一个月了,上次在家写的下回预告,到底是没把加水印写完,而且这次也不想写.. 2. 上次许的愿,十月份看完asp.net,已经泡汤了,翻 ...
- 原生Ajax
使用原生Ajax 验证用户名是否被注册 创建出注册信息: <h1>注册信息</h1><input type="text" name="txt ...
- JS原生ajax与Jquery插件ajax深入学习
序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...
- 原生Ajax 和Jq Ajax
前言:这次介绍的是利用ajax与后台进行数据交换的小例子,所以demo必须通过服务器来打开.服务器环境非常好搭建,从网上下载wamp或xampp,一步步安装就ok,然后再把写好的页面放在服务器中指定的 ...
随机推荐
- Vue命令(一)
Vue Command Summary 1.v-bind:元素节点的title属性和message保持一致. <div id="app-1"> <span v-b ...
- 关于对springboot程序配置文件使用jasypt开源工具自定义加密
一.前言 在工作中遇到需要把配置文件加密的要求,很容易就在网上找到了开源插件 jasypt (https://github.com/ulisesbocchio/jasypt-spring-boot# ...
- 『编程题全队』Beta 阶段冲刺博客一
1.提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID) (1) 昨天已完成的工作 孙志威: 1.讨论并制定了Beta阶段的计划 孙慧君: 1.Beta阶段任务的认领 黄华林 ...
- Rabbitmq vs. kafka
https://mp.weixin.qq.com/s/2i_9TWoF3TsJvG6Dj_75vw http://www.cnblogs.com/valor-xh/p/6348009.html htt ...
- Spring Framework: @RestController vs @Controller
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annota ...
- 解决AJAX应用,会话超时(Session Timeout)的问题,粗略方法(不考虑使用Filter的前提下)
function ajaxPost(url, data) { var async = false; var result = {}; $.ajax({ url : url, async : async ...
- ExtJS Tab里放Grid高度自适应问题,官方Perfect方案。
出处:http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/layout-browser/layouts/combination.js // ...
- 自动化运维python学习笔记一
Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...
- Mysql 乐观锁
转载:http://chenzhou123520.iteye.com/blog/1863407 乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般 ...
- js 算數(Math)對象
算數對象不需要聲明,可以直接使用, Math對象方法及作用: round()四捨五入: random()生成0到1的隨機數: max()選擇較大的數: min()返回較小的數: