假设我想获取Backbone.js模型的数据,同时传递其他数据:
myModel.fetch{ data: { bar: true } };
如果您在Firebug中查看您的请求,Backbone会将此数据附加到URL:
GET http://www.example.net/foo?bar=true
此数据显示在Firebug的“参数”标签下。
但是,如果我使用Backbone呼叫post
或put
,则发布的额外数据不会在网址中发送,而是显示在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'?
答案 0 :(得分:1)
获取方法
GET操作(在HTML中定义)将查询字符串(或参数)放在URL中,然后将其发送到服务器。这样做是因为GET应该仅用于检索数据。由于您在URL中具有完整参数,因此可以缓存此数据,此URL可以加入书签并保留在浏览器历史记录中。
POST方法
POST操作旨在向服务器提交数据。在这种操作中没有完成缓存。这不存储在浏览器历史记录中。由于您不想公开发送内容的内容。
说这个,方法的行为是有意义的,你应该在你的应用程序中正确使用这两种方法,并在服务器端独立地处理它们。