HTML表单通过隧道传输使用PUT方法,这是我不理解的内容。

3
HTML无法通过表单提交PUT请求。你只能通过javascript作为ajax请求来实现。另外有人在另一篇文章中说(+40的答案):“浏览器仅支持POST和GET,如果需要使用PUT,您必须通过post/get发送表单,然后在服务器端执行正确的PUT请求。”这是否意味着可以使用表单上传文件(比方说使用POST方法),但服务器解释为PUT方法?但如果请求被处理为POST方法,你无法以与PUT相同的方式向服务器传输数据,我不明白。请有人能够澄清吗?
1个回答

1
您只能在浏览器中使用POST或GET。一些REST实现使用“方法覆盖”变量来向服务器指示您实际上想要不同的方法 (请参见http://docs.slimframework.com/搜索“Method Override”)
这只是一个简单的隐藏变量,您可以将自己的约定应用于它,然后在服务器端代码中对其进行反应。
编辑:(澄清) 浏览器不支持通过标准HTML表单以外的任何内容。您可以设置机制让您的应用程序知道您打算通过另一种方法发送,但Web服务器仍将将其处理为POST。

嗨,抱歉我还是不明白。您所说的约定是什么意思?而您所说的对其做出反应是什么意思呢?Apache服务器将等待接收所有POST数据,然后再决定如何处理它,而在传统的PUT方法中,Apache会在接收到位时将数据传递给目标。 - user1166981
浏览器不支持PUT方法,因此您无法使用普通的HTML表单以这种方式进行流式传输。您只能向服务器端脚本指示您希望“假装”它是一个PUT请求,以使您的应用程序更符合RESTful原则。但实际上,该请求仍将被Web服务器处理为POST请求。 - soulfreshner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接