Ajax

194 阅读2分钟

ajax:HTTP协议请求

使用ajax:

  创建XMLHttpRequest对象

  • 所有现代浏览器均支持,XMLHttpRequest对象IE5,IE6除外
  • XMLHttpRequest,用于和后台服务器交换数据
  • 这意味着是可以在不重新加载整个页面的情况下,对页面的某个部分进行数据的更新
  • let xhr = new XMLHttpRequest()

发送请求:

  • 这一步是属于XMLHttpRequest对象的核心方法
  • open() 和send() 方法
  • open(method, url, async)

                参数一:method 请求类型 GET, POST, PUT, DELETE..

                参数二:url 文件在服务器上的位置

                参数三:async true(异步)  false(同步)   ES7的语法中,有对应的async用法

  • xhr.open('GET', url, true)
  • send(string):

                参数:string      string: 仅用于POST请求‘

服务器响应

  • 这个属于XMLHttpRequest 对象用于接收数据的核心属性
  • responseText      获取字符串形式的响应数据
  • responseXML      获取XML形式的响应数据      


let xhr = new XMLHttpRequest ()
xhr.open('GET', url, true)

if (xhr.status === 200) {
  ...
}

响应状态

    status

  • 200   正常
  • 301   对象已永久移走,即永久重定向
  • 401   拒绝被访问  就是未授权
  • 404   找不到页面
  • 500    内部服务器错误(一般这种情况,就是服务器在发布打包,并且关闭)

     readyState

  • 存在XMLHttpRequest的状态,是从0~4发生变化
  • 0 代表(初始化状态,未打开),此时xhr对象被成功构造,open() 方法还未被调用
  • 1 代表(已调用,未发送),open() 已经成功调用,sden() 方法还未调用







GET和POST的区别

  1. GET相比POST更简单也更快
  2. GET请求会将参数跟在URL后面进行传输,而POST请求则是作为HTTP消息的实体内容进行传输
  3. GET方式请求的数据会被浏览器缓存下来,因此他人可以从浏览器的历史记录中能够读取到这些信息,所以POST更加安全
  4. GET方式提交的数据会受限制,注意:HTTP协议并没有规定限制,而是浏览器规定的限制