2

我正在尝试从 Node.js 向我的 Rails 3 服务器发出 PUT 和/或 POST 请求。我在正文中传递了我的参数,但它们没有变成 Rails 控制器中的参数散列。我的代码如下:

http = require('http');
request = require('request');
qs = require('qs');

data = qs.stringify({name: 'Aaron', points: 10});
request_opts = {
  uri: 'http://localhost:3000/users/update',
  method: 'PUT',
  body: data
}

request(request_opts, function() { console.log(arguments) });

我在我的 Rails 控制器中放置了一个调试器,params 为 nil,但response.body.read返回我在data.

如何从参数与 Rails 兼容的 Node.js 发出 PUT / POST 请求?

4

1 回答 1

1

querystring模块会将您的数据序列化为参数编码形式。默认情况下,rails 需要一个 JSON 序列化实体。您应该使用JSON.stringify而不是qs.stringify将您的用户序列化到请求正文中。或者,您可以显式指定一个 content-type 标头来application/x-www-form-urlencoded告诉 rails 您要发送的正文的类型。

于 2012-08-17T20:19:57.770 回答