var http_request = false;
function send_request(method,url,content,responseType,callback){
http_request = false;
if(window.XMLHttpRequest) { //现代浏览器
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
} else if(window.ActiveXObject) { //老IE浏览器
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
} if(!http_request) {
window.alert("Can't create XMLHttpRequest");
return false;
}
if(responseType.toLowerCase() == "text") {
//http_request.onreadystatechange = processTextResponse;
http_request.onreadystatechange = callback;
} else if(responseType.toLowerCase == "xml") {
//http_request.onreadystatechange = processXMLResponse;
http_request.onreadystatechange = callback;
} else {
window.alert("error");
return false;
} if(method.toLowerCase() == "get") {
http_request.open(method, url, true);
} else if(method.toLowerCase() == "post") {
http_request.open(method, url, true);
http_request.setRequestHeader("content-Type","application/x-www-form-urlencoded");
} else {
window.alert("http request error");
return false;
}
http_request.send(content);
} function processTextResponse() {
if(http_request.readyState == 4) {
if(http_request.status == 200) {
alert(http_request.responseText);
} else {
alert("request error");
}
}
} function processXMLResponse() {
if(http_request.readyState == 4) {
if(http_request.status == 200) {
alert(http_request.responseXML);
} else {
alert("request error");
}
}
}

AJAX原生JS代码的更多相关文章

  1. 原生JS代码实现一个Ajax异步请求

    异步加载的方式 (1) defer,只支持IE (2) async: (3) 创建script,插入到DOM中,加载完毕后callBack 实现ajax之前必须要创建一个 XMLHttpRequest ...

  2. 奇舞js笔记——第0课——如何写好原生js代码

    摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...

  3. Jquery揭秘系列:ajax原生js实现

    讲到ajax这个东西,我们要知道两个对象XMLHTTPRequest和ActiveXObject ,提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求 ...

  4. Ajax分页js代码

    var pageIndex = 0; var pageSize = 10; $(function () { $("#btnSearch").click(function () { ...

  5. 特效合集(原生JS代码)适合初学者

    1.返回顶部(完全兼容各个浏览器,不含美化) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" & ...

  6. jsonp原生js代码示例

    /* mightygumball.js */ /* * get the content of a JSON file using JSONP * update every 3 seconds. * * ...

  7. 第110天:Ajax原生js封装函数

    一.Ajax的实现主要分为四部分: 1.创建Ajax对象 // 创建ajax对象 var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHtt ...

  8. ajax原生js及readystate/status

    菜鸟教程 ←← GET: <script> function  ajaxGet(){ var  xmlhttp; if(window.XMLHttpRequest){ //TE7+  Fi ...

  9. ajax 原生js封装ajax [转]

    /* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @ ...

随机推荐

  1. 动态linq to list排序

    public class QeurySort { public static IList<T> Sort<T>(IList<T> list,string sidx, ...

  2. Unity关于一个UGUI优化效率的方法

    无意间发现了一个小技巧.如下图所示,可以发现UGUI的Image组件的RaycastTarget勾选以后会消耗一些效率,为了节省效率就不要勾选它了,不仅Image组件Text组件也有这样的问题. 一般 ...

  3. GNOME编辑器--gedit 构建基本脚本

    gedit factorial.sh myprog.c 当你启动gedit外带多个文件时,它会将所有的文件都加载到不同的缓冲区并在主编辑器窗口中按标签化的窗口来显示每个文件. shell脚本的关键在于 ...

  4. 压测如何观测jvm,就是使用jmx来实现jvm监控

    jps.jstack.jmap.jhat.jstat.hprof 基于jmx可以开发web版本,方便压测的时候观测jvm以及线程的信息 ================================ ...

  5. Java面向对象㈠ -- 封装

    Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...

  6. how to enable remote access for root user

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

  7. C#:USB设备枚举 --转自CSDN作者:Splash

    (一)DeviceIoControl的PInvoke /* ---------------------------------------------------------- 文件名称:Device ...

  8. this关键字

    class Demothis关键字//哪个对象在调用this所在的函数,this就代表哪个对象.{ //当定义类中功能时,该函数内部要用到该函数的对象时,这时用this来表示这个对象. public ...

  9. web----test-----selenium

    selenium ide 安装就自行百度吧. 对百度进行一个简单的录制. 1. 在Firefox浏览器打开百度页面. 2.在Firefox浏览器菜单栏中,选择“工具” ,选择selenium IDE ...

  10. Android test---robotium----简单例子

    1.首先新建一个要被测试的工程,命名为”robotium“:一个很简单的Android 应用程序:主页面只有个 TextView 控件: 2. 在建一个用于测试的工程 ,命名为”robotiumTes ...