主干.js在不将数据作为 URL 字符串传递的情况下获取

Backbone.js Fetch without passing data as URL string

本文关键字:字符串 获取 情况下 URL js 数据 主干      更新时间:2023-09-26

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

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

如果你在Firebug中查看你的请求,Backbone将这些数据附加到URL上:

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

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

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

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

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

我的问题:

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

GET 方法

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

开机自检方法

开机自检操作旨在将数据提交到服务器。在此类操作中不执行缓存。这不会存储在浏览器历史记录中。由于您不想公开要发送的内容,因此内容会进入正文。

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