Ajax使用笔记之基础部分

1、Ajax如何发送数据的:

// 1.get:   将数据拼接在url后即可
// 2.post:  将数据放在send的参数内,但是提前要设置发送数据的格式,如下:
// ajax对象.setRequestHeader("Content-type","application/x-www-form-urlencoded");

2、AJAX状态码:

  • 0:创建ajax对象成功
  • 1:配置请求信息成功
  • 2:响应已经回到浏览器
  • 3:浏览器正在解构响应体
  • 4:响应体解析完毕可以使用了

3、
        ajax:可以请求正常的资源,不可以请求跨域且对方没有明确允许的资源;

        jsonp:只能请求支持jsonp的跨域的资源。
4、ajax中的一些小问题:

(1)兼容
    xhr对象的兼容:(几乎可以不考虑了)
	    IE5以上:
        new XMLHttpRequest();
        IE5及以下:
        new ActiveXObject("Microsoft.XMLHTTP");
    事件的兼容:(几乎不考虑了)
        几乎大部分浏览器都支持两种:
        xhr.onreadystatechange = function(){
            手动判断ajax的状态和http的状态;
        }
        xhr.onload = function(){
            只需要判断http的状态
        }

(2)异步同步
    ajax自身默认异步执行,可以强行修改成同步执行:
        在open方法中传入第三个参数,布尔值
      	  true为异步,默认值;
      	  false为同步,官方不推荐使用,不要使用。

(3)缓存:
    当get请求时,浏览器会默认缓存要请求的资源,以提升用户体验:
        ①浏览器第一次打开某个网页时,会自动下载当前网页上的一些资源;
        ②浏览器第二次打开同一个地址时,会自动先从自身缓存中查找资源,如果有,直接加载,如果没有,再从服务器重新请求。
        如果缓存中有了,就不在去服务器中请求了,如果此时服务器中的数据正好改了,有可能会拿不到新数据。
// 例:以下地址,对于浏览器来说,是不一样的但是对于服务器来说,请求的资源是同一个:
   		data/hello.txt?abc=123233123123241
	    data/hello.txt?abc=713575765623531
    	data/hello.txt?abc=713575761231231
        data/hello.txt?abc=713575761876887
        data/hello.txt?abc=713575767657576
// 最终解决方案:在get请求的url后拼接时间戳,如下:
        let url = "data/hello.txt?__qft=" + new Date().getTime();
发布了64 篇原创文章 · 获赞 250 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_42881768/article/details/104824382
今日推荐