AJAX请求步骤

AJAX请求四步:

1、创建AJAX核心对象

老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  	xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

2、注册回调函数

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    	console.log("kkkkkkkkk");
    }
  }

3、开启通道

  1. 第一种方式:使用GET请求checkusername

    xmlhttp.open("GET","checkusername",true);
    
    方法描述
    open(method: string, url: string)规定请求的类型、URL ,默认使用异步处理请求。
    open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。method:请求的类型;GET 或 POSTurl:文件在服务器上的位置async:true(异步)或 false(同步)
  2. 第二种方式:使用POST请求(需要添加请求头)

    xmlhttp.open("POST","checkusername",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    

    Content-type通常设置为下面的字段:

    -----
    Accept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-Length
    CookieCookie2DateDNTExpect
    HostKeep-AliveOriginRefererTE
    TrailerTransfer-EncodingUpgradeUser-AgentVia

    在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行MIME查找,并不一定遵循此标题的值;

    MIME的组成结构非常简单;由类型与子类型两个字符串中间用'/'分隔而组成。不允许空格存在。

    通用结构为:

    type/subtype
    

    type 表示可以被分多个子类的独立类别。subtype 表示细分后的每个类型。

    独立类型表明了对文件的分类,可以是如下之一:

    类型描述典型示例
    text表明文件是普通文本,理论上是人类可读text/plain, text/html, text/css, text/javascript
    image表明是某种图像。不包括视频,但是动态图(比如动态gif)也使用image类型image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon
    audio表明是某种音频文件audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
    video表明是某种视频文件video/webm, video/ogg
    application表明是某种二进制数据application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf

4、发送请求

xmlhttp.send(null);
方法描述
send(string)将请求发送到服务器。string:仅用于 POST 请求

当你使用 async=false 时,请不要编写 onreadystatechange 函数,把代码放到 send() 语句后面即可

xmlhttp.open("GET","test1.txt",false);
xmlhttp.send(null);
document.getElementById("username").innerHTML=xmlhttp.responseText;

5、Ajax代码

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        $("input[id='username']").blur(function () {
            $(this).addClass("checkUsername");
            xmlHTTP = new XMLHttpRequest(); //全局变量
            xmlHTTP.onreadystatechange = checkUsername;  //回调函数:服务器响应以后,调用该函数
            xmlHTTP.open("GET","checkusername?username="+$(this).val());  //开启连接
            xmlHTTP.send(null);
            //xmlHTTP.open("POST","checkusername");
            //xmlHTTP.send("username="+$(this).val());
            //xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        })
    });
    function checkUsername() {
        if (xmlHTTP.readyState == 4) {
            if (xmlHTTP.status == 200) {
                console.log(xmlHTTP.responseText);
            }
        }
    }
</script>

想测试ajax可以点击这个连接

参考文献

https://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值