我在这里看到了几个问题,例如如何调试RESTful服务 ,其中提到:

不幸的是,同一浏览器不允许我测试HTTP PUT,DELETE,并且在某种程度上甚至无法测试HTTP POST。

我还听说其他一些来源的浏览器仅支持GET和POST:

  • http://www.packetizer.com/ws/rest.html
  • http://www.mail-archive.com/jmeter-user@jakarta.apache.org/msg13518.html
  • http://www.xml.com/cs/user/view/cs_msg/1098

但是,在Firefox中进行的一些快速测试表明,发送PUTDELETE请求可以按预期方式工作XMLHttpRequest成功完成,并且该请求以正确的方法显示在服务器日志中。 我是否缺少某些方面的信息,例如跨浏览器兼容性或非显而易见的限制?


#1楼

补充一点-Safari 2和更早版本肯定不支持PUT和DELETE。 我得到的印象是3,但现在没有测试了。 Safari 4确实支持PUT和DELETE。


#2楼

我相信这些评论专门针对浏览器,即单击链接并提交表单,而不是XMLHttpRequestXMLHttpRequest只是使用JavaScript编写的自定义客户端,它使用浏览器作为运行时。

更新:澄清一下,我并不是说(尽管我确实写过) 写了XMLHttpRequest ; 我的意思是您编写了使用XMLHttpRequest的代码。 浏览器本身不支持XMLHttpRequestXMLHttpRequest来自JavaScript运行时,该运行时可以由浏览器托管,尽管不是必须的(请参阅Rhino )。 这就是为什么人们说浏览器不支持PUTDELETE因为实际上是JavaScript支持了它们。


#3楼

XMLHttpRequest是JavaScript对象模型中的标准对象。

根据Wikipedia的说法, XMLHttpRequest最初作为ActiveX对象出现在Internet Explorer 5中,但此后已成为标准,并且自1.0,Apple Safari 1.2,Opera 7.60-p1和IE以来就已包含在Mozilla家族的JavaScript中。 7.0。

open()方法在物体上发生的HTTP方法作为参数-和被指定为采取任何有效的HTTP方法(参见链路的项目号5) -包括GETPOSTHEADPUTDELETE ,如通过指定RFC 2616 。

附带说明, IE 7-8仅允许以下HTTP方法:“ GET”,“ POST”,“ HEAD”,“ PUT”,“ DELETE”,“ MOVE”,“ PROPFIND”,“ PROPPATCH”,“ MKCOL” ,“复制”,“锁定”,“解锁”和“选项” 。


#4楼

否。HTML5规范提到:

method和formmethod内容属性是具有以下关键字和状态的枚举属性:

关键字get ,映射到状态GET,指示HTTP GET方法。 GET方法应仅请求和检索数据,并且没有其他效果。

关键字post ,映射到状态POST,指示HTTP POST方法。 POST方法请求服务器接受要处理的提交表单数据,这可能导致将项目添加到数据库,创建新的网页资源,更新现有页面或所有提及的结果。

关键字dialog映射到状态对话框,指示提交表单旨在关闭对话框,在该对话框中,表单会自动找到(如果有),否则将不会提交。

这些属性的默认值默认为GET状态

即HTML表单仅支持GETPOST作为HTTP请求方法。 一种解决方法是使用服务器读取的隐藏表单字段并相应地分派请求,从而通过POST隧道传输其他方法。

但是,在所有主要的Web浏览器(IE,Firefox,Safari,Chrome,Opera)中,XMLHttpRequest(即AJAX调用)的实现支持GETPOSTPUTDELETE


#5楼

HTML表单支持GET和POST。 (HTML5曾一度添加了PUT / DELETE,但已将其删除。)

XMLHttpRequest支持包括CHICKEN在内的所有方法,尽管有些方法名称不区分大小写(每个HTTP方法区分大小写),并且出于安全原因完全不支持某些方法名称(例如CONNECT)。

浏览器正在慢慢收敛于XMLHttpRequest指定的规则,但是正如其他注释所指出的那样,仍然存在一些差异。


#6楼

_method隐藏字段解决方法

在Rails中使用,可以适用于任何框架:

  • 将隐藏的_method参数添加到非GET或POST的任何形式:

     <input type="hidden" name="_method" value="DELETE"> 

    这可以通过HTML创建帮助器方法(例如Rails form_tag )在框架中自动完成。

  • 将实际的表单方法修复为POST( <form method="post"

  • 在服务器上处理_method并完全像发送该方法而不是实际的POST一样执行

不可能的原因/历史: https : //softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms


#7楼

YES ,PUT,DELETE,HEAD等HTTP方法在所有现代浏览器中均可用。

为了与XMLHttpRequest级别2兼容,浏览器必须支持这些方法。 要检查哪些浏览器支持XMLHttpRequest Level 2,我建议使用CanIUse:

http://caniuse.com/#feat=xhr2

只有Opera Mini缺少对atm(juli '15)的支持,但是Opera Mini缺少对所有内容的支持。 :)

大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?相关推荐

  1. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  2. web浏览器兼容性问题

    1.   HTML对象获取问题 FireFox:document.getElementById("idName"); ie:document.idname或者document.ge ...

  3. vivaldi浏览器_Vivaldi的最佳功能,一种针对高级用户的新型可自定义Web浏览器

    vivaldi浏览器 Vivaldi is a new desktop web browser for Windows, Mac, and Linux, built primarily for peo ...

  4. android web_适用于Android的最佳Web浏览器

    android web Your phone probably already has Chrome on it, but that's not the be all, end all when it ...

  5. web浏览器与IE的关系,如何设置web浏览器工作在IE9模式下?

    一,问题的提出 偶然发现,Winform的里的web浏览器和IE浏览器实际安装的版本似乎并不同步,很有趣! 下面有张图,里面一个窗口是用IE9打开某网站,另一个窗口是用Winform的web浏览器+打 ...

  6. 《JavaScript权威指南第7版》第15章 Web浏览器中的JavaScript 15.1 15.2 15.3

    第15章 Web浏览器中的JavaScript 15.1 网络编程基础 15.1.1 HTML script 标签中的JavaScript 模块 指定脚本类型 脚本运行时:异步和延迟 按需加载脚本 1 ...

  7. Beaker:一个基于Electron的点对点Web浏览器

    Beaker是一个基于Electron.Chromium和Node.js的实验性.点对点Web浏览器.Beaker包含新的基于Dat的API,用于构建无主机应用程序,同时又保持与传统Web的兼容性. ...

  8. 禁用Cookie在web浏览器中读取/写入c#应用程序

    我希望网站无法读取cookie或在webbrowser c#控制应用程序中写入新的cookie.当webbrowser c#应用程序运行时,我宁愿禁用所有网站的所有读/写cookie操作,如果不是,那 ...

  9. python 浏览器,轻量级Python Web浏览器

    这里有一个奇怪的要求,但是我真的不知道答案.在 我正在编写一个python应用程序,它显示web页面和本地存储的图像.在 我需要的是一种使用python显示web页面的方法,这种方法非常轻量级而且非常 ...

最新文章

  1. TCP 客户端程序开发
  2. 从Activity中返回数据
  3. python做动态相册_动感网页相册 python编写简单文件夹内图片浏览工具
  4. Linux软件安装——安装软件的命令
  5. java基础进阶(文件列表,线程,线程组)编程实例(4篇)
  6. 【测试】用例设计思路-六方面
  7. 亚太数学建模竞赛优秀论文_全国大学生数学建模竞赛介绍
  8. 52 - LeetCode-13 -罗马数字转整数_罗马数字转数字
  9. linux中快速清空文件内容的方法
  10. curl post file PHP
  11. 2021年中国中心线市场趋势报告、技术动态创新及2027年市场预测
  12. 使用 IntraWeb (26) - 基本控件之 TIWMenu
  13. MongoDB 复制集(Replica Set) 配置(Windows 版)
  14. 光纤传感技术:基于Matlab的OFDR系统数值仿真
  15. Java调用第三方接口(http总结)
  16. 网络掘金者信息采集软件行业应用
  17. html中url格式,web地址的URL一般格式为
  18. 免费且快速搭建个人www服务器的教程
  19. 用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。(c语言)
  20. 五行Python代码实现春节微信祝福神器(基于itchat)

热门文章

  1. #pragma pack的作用
  2. Android Stadio 使用GsonFormat 生成Java类
  3. jquery对ajax的支持
  4. 使用命令编译为jar包
  5. Git使用教程之本地仓库的基本操作
  6. IOS开发笔记5-C语言基础复习
  7. iOS进阶之路由MGJRouter-1(13)
  8. (0045) iOS 开发之MBProgressHUD 源码学习
  9. Linux从入门到精通——自动安装脚本
  10. 第五周 1 素数和(5分)