发表于: 2021-08-29 23:49:00

0 1978


今天完成的事情:

回调函数是一种以参数形式传递给另一个函数的函数。

如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同)


<div id="myDiv"><h2>使用 AJAX 修改文本内容</h2></div>
<button type="button" onclick="myFunction()">修改内容</button>



var xmlhttp;
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
  {// IE7+, Firefox, Chrome, Opera, Safari 代码
  xmlhttp=new XMLHttpRequest();
  }
else
  {// IE6, IE5 代码
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
    loadXMLDoc("/try/ajax/ajax_info.txt",function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    });
}



服务器常用的状态码及其对应的含义如下:

 200:服务器响应正常。
 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。
 400:无法找到请求的资源。
 401:访问资源的权限不够。
 403:没有权限访问资源。
 404:需要访问的资源不存在。
 405:需要访问的资源被禁止。
 407:访问的资源需要代理身份验证。
 414:请求的URL太长。
 500:服务器内部错误。




jQuery AJAX 方法

$.ajax()    执行异步 AJAX 请求
$.ajaxPrefilter()   在每个请求发送之前且被 $.ajax() 处理之前,处理自定义 Ajax 选项或修改已存在选项
$.ajaxSetup()   为将来的 AJAX 请求设置默认值
$.ajaxTransport()   创建处理 Ajax 数据实际传送的对象
$.get() 使用 AJAX 的 HTTP GET 请求从服务器加载数据
$.getJSON() 使用 HTTP GET 请求从服务器加载 JSON 编码的数据
$.getScript()   使用 AJAX 的 HTTP GET 请求从服务器加载并执行 JavaScript
$.param()   创建数组或对象的序列化表示形式(可用于 AJAX 请求的 URL 查询字符串)
$.post()    使用 AJAX 的 HTTP POST 请求从服务器加载数据
ajaxComplete()  规定 AJAX 请求完成时运行的函数
ajaxError() 规定 AJAX 请求失败时运行的函数
ajaxSend()  规定 AJAX 请求发送之前运行的函数
ajaxStart() 规定第一个 AJAX 请求开始时运行的函数
ajaxStop()  规定所有的 AJAX 请求完成时运行的函数
ajaxSuccess()   规定 AJAX 请求成功完成时运行的函数
load()  从服务器加载数据,并把返回的数据放置到指定的元素中
serialize() 编码表单元素集为字符串以便提交
serializeArray()    编码表单元素集为 names 和 values 的数组



js5jq代码如下

 $("form").on("submit"function() {
     var timer = null;
     $.ajax({
         type: 'POST',
         url: '/carrots-admin-ajax/a/login',
         data: $('#login').serialize(),
         dataType: 'json',
         successfunction(data) {
             console.log(data);
             if (data.code === 0) {
                 window.location.href = "http://dev.admin.carrots.ptteng.com/";
             } else {
                $('#msg').html(data.message);
                 timer = setTimeout(function() {
                     $('#msg').html('');
                 }, 3000)
             }
         }
     })
     return false;//阻止表单默认提交行为
 })




明天计划的事情:

明天计划开始js6的学习了

另外抽点时间把前面的回顾一下



遇到的问题:
ajax还是有点懵,没有说很彻底的理解进去





收获:

js5JQ的写法








返回列表 返回列表
评论

    分享到