0

我想知道我是否做错了什么,或者我无法通过req.body.username在 fetch() 调用之后调用(例如)访问服务器端的模型属性(使用 express)是正常的:

app.get("/test", function(req, res){
  console.log(req.body.username); //Undefined
});

但是我可以通过 PUT 请求以相同的方式访问它。

实际上,我使用 url 发送用户名,但我想清理我的路由并req.body改为访问属性,(当然是在客户端的模型中设置它之后)。

感谢您的解释 !

更新:

以防万一,这是我的应用程序配置:

app.configure(function(){
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.session({secret: 'test', store: express.session.MemoryStore({
    reapInterval: 60000 * 10
 })}));
});
4

1 回答 1

0

我猜你在客户端上使用了backbone.js,因为你已经用它标记了你的问题。默认情况下, Backbone 的同步方法似乎不会将模型数据附加到请求中。您可以将它作为获取/同步的选项传递,但似乎JQuery无论如何都会将数据附加到 url。您可能必须覆盖主干的同步和/或 ajax 方法。我认为在 GET 请求中包含一个主体是违反 REST 原则的,正如另一个答案中所指出的(资源必须完全由 URI 标识)。

于 2013-01-10T16:36:15.520 回答