兼容性IE的Ajax原生Javascript代码

本文详细介绍了如何使用JavaScript通过AJAX实现同步与异步的GET和POST请求,并展示了如何处理请求结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:异步会立即返回,不阻塞后面代码执行。同步恰恰相反。

同步调用get

function send_request(){
    var xmlhttp = null;
    if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }else if (window.ActiveXObject){
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp!=null){
        var requrl = 'user/save.do?username=zhangsan&age=10';//url可以是相对路径也可以是绝对,get需要将参数放在url里,如果参数有中文先调用encodeURIComponent("username=张三&age=10")编一下码
        xmlhttp.open( "GET",requrl,false);//第一个参数指明访问方式,第二次参数是目标url,第三个参数是“是否异步”,true表示异步,false表示同步
        xmlhttp.send();
        return xmlhttp.responseText
    }else{
        alert("您的浏览器不支持AJAX!");
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
异步调用get

function send_request(){
    var xmlhttp = null;
    if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }else if (window.ActiveXObject){
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp!=null){
        var requrl = 'user/save.do?username=zhangsan&age=10';//url可以是相对路径也可以是绝对,get需要将参数放在url里,如果参数有中文先调用encodeURIComponent("username=张三&age=10")编一下码
        xmlhttp.open( "GET",requrl,true);//第一个参数指明访问方式,第二次参数是目标url,第三个参数是“是否异步”,true表示异步,false表示同步
        xmlhttp.onreadystatechange=function(){//异步需要指定回调函数
            if (xmlhttp.readyState==4 && xmlhttp.status==200){//readyState为4,表示ajax请求已经完成,status是目标url返回的http状态码,200表示服务器响应成功
            var d= xmlhttp.responseText; 
            // 处理返回结果 
          } 
        }
        xmlhttp.send();
    }else{
        alert("您的浏览器不支持AJAX!");
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
异步调用post

function send_request(){
    var xmlhttp = null;
    if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }else if (window.ActiveXObject){
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp!=null){
        var requrl = 'user/save.do';//url可以是相对路径也可以是绝对
        xmlhttp.open( "POST",requrl,true);//第一个参数指明访问方式,第二次参数是目标url,第三个参数是“是否异步”,true表示异步,false表示同步
        xmlhttp.onreadystatechange=function(){//异步需要指定回调函数
            if (xmlhttp.readyState==4 && xmlhttp.status==200){//readyState为4,表示ajax请求已经完成,status是目标url返回的http状态码,200表示服务器响应成功
            var d= xmlhttp.responseText; 
            // 处理返回结果 
          } 
        }
        xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); //post需要设置Content-type,防止乱码
        xmlhttp.send("username=zhangsan&age=10");//post需要将参数放在send方法,当然参数放在url也还是可以的,但不好
    }else{
        alert("您的浏览器不支持AJAX!");
    }
};
--------------------- 
作者:思想永无止境 
来源:优快云 
原文:https://blog.youkuaiyun.com/u012643122/article/details/79688215 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值