转自:https://www.cnblogs.com/yufann/p/JS-Ajax.html

1.创建一个Ajax对象

非IE6浏览器:var obj = new XMLHttpReuqest();

IE6浏览器:var obj = new ActiveXbject("Microsoft.XMLHTTP");

2.连接到服务器

obj.open(请求方式,url,是否异步)

阻止缓存方式:

obj.open('get','yan.txt?name='+new Date().getTime(),true);

3.发送请求

obj.send();

4.接收返回值

请求状态监控:onreadystatechange事件:当自己的Ajax与服务器之间有通讯时触发

主要通过readyState属性来判断有没有结束,结束了也并没有成功,status属性来判断

1.----readyState属性:请求状态

0(未初始化)还没有调用send()方法

1(载入)已经调用了send()方法,正在发送请求

2(载入完成)send()方法执行完成,已经接收到全部响应内容

3(交互)正在解析响应内容

4(完成)响应内容解析完成,可以在客户端调用了(完成不一定成功,需要status来检测是否成功)

2.---status属性:请求结果,是成功(200)还是失败(404):obj.status==200

3.---返回值responseText:从服务器返回的文本:obj.responseText(返回的为字符串)

GET方式

function  getAjax(){
var obj;
if(ActiveXObject)//判断是否是IE6
obj = new ActiveXObject("Microsoft.XMLHTTP");
else
obj = new XMLHttpRequest();
//连接服务器
obj.open('get','http://localhost:8080/yan.ashx?name=123',true);
//发送请求
obj.send();
obj.onreadystatechange=function(){
if(obj.readyState===4&&obj.status===200)//如果接收完成并且请求成功
console.log(obj.responseText);//输出返回信息
}
}

POST方式

 function postAjax(){
var obj;
if(ActiveXObject)//判断是否是IE6
obj = new ActiveXObject('Microsoft.XMLHTTP');
else
obj =new XMLHttpRequest();
//连接服务器
obj.open('post','http://localhost:8080/yan.ashx?name=123',true);
//设置头信息
obj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//发送请求,传递数据
obj.send({name:'123'});
obj.onreadystatechange = function(){
if(obj.readyState===4&&obj.status===200)//如果接收完成并且请求成功
console.log(obj.responseText);//输出返回信息
}
}

原生JS的Ajax的更多相关文章

  1. 原生js实现Ajax

    一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataT ...

  2. 使用原生js写ajax

    // 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined") ...

  3. 表单验证--通过原生js模仿ajax的异步交互

    今天给大家带来个福利,我也是刚刚学习的很实用的一个东西,通过原生js模仿ajax的异步交互. 我的博客只是给那些新手看的大神勿喷,写的不好可留言,请指出. 因为当初自己学的时候一个问题不会找人问,知道 ...

  4. 原生JS实现Ajax及Ajax的跨域请求

      前  言          如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. ...

  5. 原生JS的Ajax技术

    1.同步和异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待  卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡 ...

  6. 原生js中用Ajax进行get传参

    原生js中用Ajax进行get传参 案例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  7. 原生js实现ajax与jquery的ajax库,及json

    这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...

  8. 用原生js实现ajax、jsonp

    转载: http://www.cnblogs.com/yangheng/p/6065910.html 一.原生js实现ajax $.ajax({ url: '', type: 'post', data ...

  9. 原生JS实现ajax 发送post请求

    1. [代码]原生JS实现ajax 发送post请求 <script> var oStr = ''; var postData = {}; var oAjax = null; //post ...

  10. 原生js写Ajax

    //原生js写ajax就像打电话 //打电话分下面4步//1.拿出手机//2.拨号//3.说话//4.挺对方说话 //ajax也分下面4步//1.创建ajax对象//2.连接到服务器//3.发送请求( ...

随机推荐

  1. Fis3迁移至Webpack实战

    Webpack从2015年9月第一个版本横空初始至今已逾2载.它的出现,颠覆了一大批主流构建如Ant.Grunt和Gulp等等.腾讯NOW直播IVWEB团队之前一直采用Fis构建,本篇文章主要介绍从F ...

  2. python进阶---Python中的socket编程

    初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...

  3. Scratch——教小孩子学编码

    教小孩子学编码 http://scratch.mit.edu/ http://v.163.com/movie/2013/3/H/I/M92389L06_M9238GTHI.html

  4. 机器学习(二)-kNN手写数字识别

    一.kNN算法是机器学习的入门算法,其中不涉及训练,主要思想是计算待测点和参照点的距离,选取距离较近的参照点的类别作为待测点的的类别. 1,距离可以是欧式距离,夹角余弦距离等等. 2,k值不能选择太大 ...

  5. .net 系列:Expression表达式树、lambda、匿名委托 的使用

    首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...

  6. linux环境变量的配置

    1.全局环境变量 vi /etc/profile JAVA_HOME=/opt/modules/jdk1.8.0_11/   export PATH=$PATH:$JAVA_HOME/bin:$JAV ...

  7. 2.1synchronized同步方法

    由前言: 在第一章已经出现了非线程安全的情况."非线程安全"其实会发生在多个线程同时对同一个对象中的实例变量进行访问时发生.产生的结果就是脏读(读到被修改过的数据). " ...

  8. 翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  9. Django框架的安装

    下载Django框架 创建一个django项目 在E盘Mysite文件夹下创建了一个django项目叫mysite 当前文件夹下会产生一个mysite的文件夹,目录结构如下: manage.py -- ...

  10. linux端口开放指定端口的两种方法

    重要的事情说三遍,强烈建议使用第二种方法!第二种方法!第二!; 开放端口的方法: 方法一:命令行方式                1. 开放端口命令: /sbin/iptables -I INPUT ...