原生JS操作AJAX
1,get方式的AJAX
function sendAjaxReq()
{
//1,创建ajax引擎 XMLHttpRequest对象
var req = new XMLHttpRequest() || new ActiveXObject("Msxm12.XMLHTTP");
//2,打开一个请求,此时未发送请求,定义好发送请求的方式以及是否需要携带数据 是否同步异步
req.open("get", "testAjax?phone=iphone&apple=pen");
//3,准备好处理服务器返回的数据
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
//返回json数据的解析格式
var str = req.responseText;
eval("var obj=" + str);
alert(obj.name);
//返回xml的解析格式
var data = req.reponseXML.getElementsByTagName("bigName")[0].first(child.data);
}
}
//4,发送请求,如果是在火狐下,使用get方式发送ajax请求,send的时候括号写上null
req.send(null);
}
2,post方式AJAX
//使用post传参,需要携带一个请求头模拟表单提交
function sendAjax()
{
var request = new XMLHttpRequest() || new ActiveXObject("Msxm12.XMLHTTP");
request.open("post", "testAjax?phone=1", true)
request.onreadystatechange = function()
{
if(request.readyState == 4)
{
if(request.status == 200)
{
var str = request.responseText;
alert(str);
}
else if(request.status == 404)
{
alert("找不到资源");
}
}
}
request.setRequestHeader("content-type", "application/x-www-form-urlencoded")
request.send("phone=");
}
3,封装了get和post的AJAX
function sendAjaxReq(method,url,param,fun200,fun404,fun500)
{
var req;
if(window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
req.open(method,url);
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
if(fun200)
{
fun200(req.responseText);
}
}
else if(req.status == 404)
{
if(fun404)
{
fun404();
}
}
else if(req.status == 500)
{
if(fun500)
{
fun500();
}
}
}
}
if(method.toUpperCase() == "GET")
{
req.send(null);
}
else if(method.toUpperCase() == "POST")
{
req.setRequestHeader("context-type", "application/x-www-form-urlencoded");
req.send(param);
}
} function testAjax()
{
sendAjaxReq("get","ajaxServlet?uname=1&password=2",null,function(data)
{
eval("var obj="+data);
alert(obj.data);
});
}

原生JS操作AJAX的更多相关文章
- 原生js实现Ajax
一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataT ...
- 框架操作DOM和原生js操作DOM比较
问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...
- 原生JS实现Ajax及Ajax的跨域请求
前 言 如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. ...
- 原生JS的Ajax技术
1.同步和异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡 ...
- 用原生js实现ajax、jsonp
转载: http://www.cnblogs.com/yangheng/p/6065910.html 一.原生js实现ajax $.ajax({ url: '', type: 'post', data ...
- 原生JS实现ajax 发送post请求
1. [代码]原生JS实现ajax 发送post请求 <script> var oStr = ''; var postData = {}; var oAjax = null; //post ...
- 原生js实现ajax封装
一.什么是ajax? 定义:Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并 ...
- [javascript]原生js实现Ajax
一.首先看JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, err ...
- 使用原生js写ajax
// 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined") ...
随机推荐
- Keepalived指定文件接收日志
keepalived默认日志接收文件为/var/log/messages不方便查看,可以指定文件接收日志 修改配置文件/etc/sysconfig/keepalived KEEPALIVED_OPTI ...
- What is Gensim?
Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达.它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法, ...
- queue hardware os
Computer Science An Overview 11th Edition Queues are often used as the underlying structure of a buf ...
- df and du
1.若有进程在占用某个文件,而其他进程把这文件删掉,只会删除其在磁盘中的标记,而不会释放其占用的磁盘空间:直到所有访问该文件的进程退出为止: 2.df 是从内核中获取磁盘占用情况数据的,而du是统计当 ...
- 简单利用gulp-babel搭建es6转es5环境
es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧. demo的代码如下: 源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/ ...
- HandlerSocket
HandlerSocket http://www.uml.org.cn/sjjm/201211093.asp 目录: HandlerSocket的原理 HandlerSocket的优势和缺陷阐述 Ha ...
- #if的使用说明
#if的后面接的是表达式 #if (MAX==10)||(MAX==20) code... #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 ...
- SVN出现xcrun: error: invalid active developer path(Mac)
Mac升级了系统,配置PHPStorm的SVN,出现如下错误: 具体提示的内容是:xcrun: error: invalid active developer path (/Library/Devel ...
- 在 Angularjs 中 ui-sref 和 $state.go
ui-sref 一般使用在 <a>...</a>: <a ui-sref="message-list">消息中心</a> $stat ...
- pandas.drop/isnull/fillna/astype的用法
删除表中的某一行或者某一列更明智的方法是使用drop,它不改变原有的df中的数据,而是返回另一个dataframe来存放删除后的数据. (1)清理无效数据 df[df.isnull()] #返回的是个 ...