0

假设我想获取 Backbone.js 模型的数据,同时传递额外的数据:

myModel.fetch{ data: { bar: true } };

如果您在 Firebug 中查看您的请求,Backbone 会将此数据附加到 URL:

GET http://www.example.net/foo?bar=true

此数据显示在 Firebug 的“参数”选项卡下。

但是,如果我调用postput使用 Backbone,则发布的额外数据不会在 URL 中发送,而是显示在 Firebug 的“PUT”选项卡下。

PUT http://www.example.net/foo //additional data is not included in URL

在我的服务器端(我使用 Node.js > Express),我使用 提取传递的参数(示例 1)request.query,但我使用 提取传递的数据(示例 2)request.body

我的问题:

get在 URL中抛出参数是最佳做法吗?我应该让我的服务器端简单地查找request.param所有 GET,或者,有没有办法Model.fetch()传递“数据”而不是“参数”?

4

1 回答 1

1

获取方法

HTML 中定义的 GET 操作将查询字符串(或参数)放入 URL 中,并将其发送到服务器。这样做是因为 GET 应该只用于检索数据。由于您在 URL 中有完整的参数,因此可以缓存此数据,此 URL 可以添加书签并保留在浏览器历史记录中。

POST 方法

POST 操作旨在向服务器提交数据。这种操作不做缓存。这不存储在浏览器历史记录中。由于您不想公开您发送的内容,因此内容进入正文。

话虽如此,这些方法的行为是有意义的,您应该在应用程序中正确使用这两种方法,并在服务器端独立处理它们。

于 2013-09-25T01:21:23.230 回答