2013-04-26 138 views
0

目前,Fine Uploader使用POST将数据发送到服务器 - 有没有办法将它更改为选项对象中的PUT?我使用的是backbone.js,POST创建了一条新记录,并且一个PUT触发了一个更新。Fine Uploader POST vs PUT请求

谢谢。

+0

你可以讨论一下你需要PUT vs POST吗? POST适用于上传新文件。还有别的你在说什么吗? – 2013-04-26 20:23:36

+0

使用backbone.js时。一个POST会向服务器发送信号,表明正在发送的数据应该被创建为新记录。但是,更新当前记录时,backbone.js会发送PUT。我遇到的问题是当我使用Fine Uploader时,它发送一个POST,并且每次创建一个新记录,而不是更新我正在处理的记录。我大概可以解决这个问题,但想知道是否有办法发送PUT而不是POST。谢谢。 – cajund 2013-04-26 20:53:33

+0

我不确定我是否理解“记录”的含义。你指的是什么“记录”?假设分块未启用,Fine Uploader会为每个要上传的文件发送POST请求。这是合适的方法。你在谈论分块请求吗? – 2013-04-26 21:02:07

回答

0

POST是上传请求最合适的方法,主要是因为文件上传请求旨在是幂等的。 PUT请求更适合于非幂等(更新)请求。

但是,还有另一个原因,为什么PUT不是一个好的选择:这不适用于IE9和更旧版本。在这些浏览器中,由于缺少File API支持,表单将在每个要上传的文件的隐藏iframe中提交。 <form>上的method属性只有两个有效值:GET和POST。所以你不得不处理POST请求,除非你不打算支持IE9和更老的(不太可能)。

我对backbone.js很熟悉,没有理由不能使用POST请求,特别是在这种情况下。您还没有提供任何PUT请求在这里更可取的任何具体原因,所以我只能假设如果有这样的要求,这可能是由于应用程序中的某些逻辑可能需要重新评估。