网页http请求_ajax_form

日期:2013-6-27 21:56 | 标签: http ajax form | 阅读:602

浏览器向服务端发起请求时,会带一个头文件,指明请求的信息。请求返回时也会带一个头文件,对返回信息进行说明。那么请求头/返回头的奥秘是什么?怎么发起请求呢?

AJAX

整理下Ajax请求的几个步骤:

  1. XMLHttpRequest
    ie6不支持使用该对象,需要使用ActiveXObject对象来创建。
  2. XMLHttpRequest. onreadystatechange
    请求过程事件
    • readyState
      • 0:未调用open
      • 1:未调用send
      • 2:未接收到响应
      • 3:收到部分数据
      • 4:加载完成
    • status
      • 200:加载成功
  3. open
    打开请求通道,该方法可带三个参数,open(请求方法,请求地址,是否异步),其中第三个参数为true代表异步。
  4. setRequestHeader
    在jquery里你可以在beforesend方法进行设置
    • Content-Type
      • application/x-www-form-urlencoded
        请求头的Content-Type定义传递到服务器的数据类型,数据由服务器端处理!Content-Type后面的值就是一个MIME类型。application/x-www-form-urlencoded实际上就是指表单提交的数据,如果上传附件,就会是multipart/form-data。响应头的Content- Type定义返回到客户端的数据类型。
      • application/json; charset=UTF-8;
      • ...
    • Content-length
    • connection
  5. send
    上传信息,带一个参数,不带内容时,如get请求,直接send(null)即可,否则send(请求body)

FORM

表单默认同步提交,并且不能做到像ajax那样的精准控制。

  1. encrypt
    • application/x-www-form-urlencoded
      在发送前编码所有字符
    • multipart/form-data
      不对字符进行编码,用于文件上传
    • text/plain
      不对字符进行编码,空格会转化为‘+’号。
  2. action 提交地址
  3. method 请求方法(get/post)
  4. 其它属性...

具体可参考玩W3C:http://www.zgguan.com/doc/w3c/tags/tag_form.asp.htm

PATCH

PATCH 用于对资源的部分内容进行更新,如更新某一个字段, PUT 用于更新某个资源较完整的内容,比如说用户要重填完整表单更新所有信息,后台处理更新时可能只是保留内部记录 ID 不变,此外,PUT其实是 update ,而 PATCH 其实是 saveOrUpdate .

一些报错

  1. provisional headers are shown

其它

  1. formdata,可用于模拟表单提交,我在设置xhr请求头时遇到了麻烦,后来我直接不进行设置,反而提交成功。
  2. 怎样模拟模拟文件request body?至今在网上没看到过好的实现。

参考

content-type值:http://tool.oschina.net/commons
http://zhangmengxue.com/2015/02/01/ajax/

版权声明: 署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0
Copyright ©2013-2017 | 粤ICP备14081691号 | yipeng手工打造 | 联系方式