Backbone.js获取而不将数据作为URL字符串传递

时间:2013-09-25 00:31:12

标签: javascript backbone.js

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

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

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

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

此数据显示在Firebug的“参数”标签下。

但是,如果我使用Backbone呼叫postput,则发布的额外数据不会在网址中发送,而是显示在Firebug中的“PUT”标签下。

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

在我的服务器端(我正在使用Node.js> Express),我用request.query拉出传递的参数(示例1),但是我用{{1来拉动传递的数据(示例2) }}

我的问题:

最佳做法是在网址中抛出request.body参数吗?我是否应该让我的服务器端只为所有GET寻找get,或者,有没有办法让request.param传递'数据'而不是'params'?

1 个答案:

答案 0 :(得分:1)

获取方法

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

POST方法

POST操作旨在向服务器提交数据。在这种操作中没有完成缓存。这不存储在浏览器历史记录中。由于您不想公开发送内容的内容。

说这个,方法的行为是有意义的,你应该在你的应用程序中正确使用这两种方法,并在服务器端独立地处理它们。

相关问题