错误:通过ExtJs post方法无效的json

时间:2013-11-20 08:23:40

标签: node.js extjs

我正在使用ExtJs作为前端而NodeJs(express)用于后端!

我已经从ExtJs方法发出了一个帖子请求,但它发出错误400 Bad Request,

这是我的ExtJs方法代码:

Ext.Ajax.request({
      url: '/controllers/test.js',
      method: 'POST',
      params: { "user": "test" },
      headers: { "Content-Type": "application/json" },
      success: function(res){ console.log("Success: " + res.responseText); },
      failure: function(err){ console.log("Error: " + err.responseText); },
      scope: this
    });

我在网址上做了一些更改,比如(home.html,test.json,test.js),但是当我调用该方法时会发生同样的问题,

请帮我解决这个方法,或者给我任何其他ExtJs调用NodeJs的解决方案,

任何形式的帮助对我都有用

1 个答案:

答案 0 :(得分:1)

尝试发送这样的请求:

Ext.Ajax.request({
  url: '/test20090729',
  method: 'POST',
  jsonData: { "user": "test" },
  headers: { "Content-Type": "application/json" },
  success: function(res){ console.log("Success: " + res.responseText); },
  failure: function(err){ console.log("Error: " + err.responseText); },
  scope: this
});

对我来说,似乎你没有在快递中注册路线。张贴到controllers/test.js对我来说听起来有点奇怪。

我已将您的网址更改为“/ test20090729”。在您的快递应用中,请添加以下代码:

app.post('/test20090729', function (req, res) {
    console.log(req.body);
    res.send('I got your body!');
});

另一件事:您确定,您可以使用相对网址到达您的快速申请吗?它是静态提供ExtJS应用程序吗?那么没关系,如果没有,你可能会遇到Same-Origin-Policy问题但是SO上有数百个问题。

修改我在res.send(...)之后删除了.end(),因为这会导致问题,尤其是在与express.session一起使用时。