草依山的Javascript世界

一个Javascript程序猿的学习纪录剩地,不仅仅是JS,还有Linux、Mac、nodeJs、吃、玩!

XMLHttpRequest发送put,delete请求

记得之前有同事问过,能不能用js实现http的put和delete请求。最近看了点REST相关的东西,对HTTP协议的构造也有一些新的认识,原来很多请求已经背离了最早设计HTTP协议的初衷,get/post/put/delete分别对应着查/改/增/删,这很像数据库里的select/ update/insert/delete,感觉HTTP协议当初设计的时候是参考了数据库的操作(RFC最初于1969年制定,但是包含http 1.1的规范 RFC 2616于1996年才制定的,关系数据库是1970年提出的理论,具体是个神马关系,不太好说),我们几乎所有的操作都是get和post,put和delete用得非常少,可能与form目前只能使用get和post有关,html5规范中据说有想实现form的put和delete,但是最后放弃了,不知何故。

先放几个与REST相关的链接,有些我还没有消化透:

  • http://www.w3.org/QA/2008/10/understanding-http-put.html
  • http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
  • http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
  • http://hi.baidu.com/msingle/blog/item/410517229971d1b54623e805.html
  • http://q.sohu.com/forum/5/topic/3464168 那么到底能不能用js实现put和delete呢?

大家都知道XMLHttpRequest对象的open方法第一个参数就是method,有多少人用过除了”GET”和”POST”之外的参数呢?试验了一个,发现了好玩的,哈哈,例子猛击这里,请在不同的浏览器中测试,服务器返回的是请求的method。

在IE6,7,8下,自己乱定义的method jser.me光荣牺牲,报错了,但是put,delete都很正常,并且请求过一次的post,居然也成get了,

在FF,chrome下不仅put,delete很正常,jser.me这个自定义的方法也给力的完成了

小试验证明put和delete是完全可以用XMLHttpRequest来实现的~~~

PS:在本机(apache)测试的时候jser.me是很完美的完成了,在服务器上到nginx时被拦了,看配置也没找到哪出问题了,囧

文章地址: XMLHttpRequest发送put,delete请求
欢迎关注我的微博与我交流:@草依山
Github上也有一些东西:[Github]
所有文章坚决抵制jb51.net的转载!
标签: javascript 28
2012-08-03

相关文章

2016-09-29 [翻译]bash的各种文件载入执行顺序
2016-05-31 phantomjs在linux下截图中文字体问题
2016-04-24 Promise的错误处理
2016-02-23 URL里的+
2016-02-11 N个数中第K大的数

文章修改纪录

加载中...
Copyright © 2013. Create By 草依山, Fork