红宝书笔记整理-网络请求(XMLHttprequest)

一、XMLHttpRequest对象

​ XHR对象----通过XMLHttpRequest构造函数原生支持的XHR对象

  • XHR主要是为服务器请求和获取响应提供合理接口

  • 此接口可以异步的从服务器端获取数据,实现浏览器端不刷新也能获取数据

1、使用XHR

(1)使用xhr 对象前要使用open()方法 open()方法不会实际发送请求,只是为发送请求做好准备。

​ open()的三个参数 请求类型 请求的url 请求是否异步的布尔值(false—同步 ture—异步)

​ 同步遵守同源策略(域名、端口、协议)

(2)使用send()方法 作为请求体发送的数据

  • 接受一个参数,无参数时必须传入null
  • 只有调用send()方法后,才会发送请求

(3)XHR的几个属性

  • responseText------作为响应返回的文本
  • responseXML------如果响应内容类型是“text/xml” 或者“application/xml”,则包含响应数据的XMLDom文档
  • status-----状态码
  • statusText------状态描述
  • readyState------表示请求或者响应过程处于哪个阶段
    • 0 ----------未初始化,还没有调用open()函数
    • 1----------已调用,,调用open()方法 未调用send()方法
    • 2----------已发送,已调用send()方法,尚未收到响应
    • 3---------接收中,已经收到部分响应
    • 4---------完成,已经收到所有的响应,可以使用

(4)readystatuschanges事件

readyState的阶段发生变化就会触发readystatuschange事件

xhr.onreadystatuschange = function() { }

(5)判断readyState状态和状态码

2、HTTP头部

xhr请求头部有以下字段:

  • accept 浏览器可以处理的内容类型
  • accept-charset 可显示的字符集
  • accept-encoding 可处理的压缩编码类型
  • accept-language 使用的语言
  • connection 浏览器和服务器连接的类型
  • cookie 页面中设置的cookie
  • host 发送请求所在的域
  • referer 发送请求的url
  • user-agent 浏览器用户代理字符串

在发送请求中,如果想要发送额外的头部信息,则可以使用 setRequestHeader()方法

  • setRequestHeader()方法放在open()后,send()前

3、Get请求

  1. 常用于向服务器查询某些信息
    • 可以将查询字符串参数追加到URL的末尾,以便将信息发送给服务器
    • open()的URL末尾的的字符串必须经过正确的编码

2.常见错误------查询字符串的格式问题

  • 查询字符串中每个参数的名称和值都必须使用encodeURIComponent ()进行编码
  • 必须由和号(&)分隔

3.addURLParam()函数辅助URL末尾添加字符串参数

  • 三个参数:要添加参数的URL、参数的名称、参数的值
  • 解析过程
    • 检查URL是否包含问号
    • 没有,添加一个问号;有,添加一个和号
    • 将参数名称和值进行编码,添加到URL的末尾
    • 最后返回添加参数之后的URL

4、post请求

  1. 用于向服务器发送应该被保存的数据

  2. POST请求的主体可以包含非常多的数据,而且格式不限,包括原始的处理XML DOM文档类型或者其他的字符类型

  3. 数据处理

    • 服务器对 POST请求和提交Web表单的请求数据采用不同的处理
    • 服务器端中有程序读取发送过来的原始数据,并从中解析出有用的部分

    解决-----采用使用XHR来模仿表单提交

    • 首先将Content-Type头部信息设置为application/x-www-form-urlencoded,改变数据提交的类型
    • 以适当的格式创建一个字符串
  4. 格式序列化

    serialize ()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值