【问题标题】:Net::HTTP.post_form cannot send parameterNet::HTTP.post_form 无法发送参数
【发布时间】:2013-01-18 23:09:11
【问题描述】:

嗨,我在 node.js 中使用 rails 和 socket.io
我想要做的是使用 Net::HTTP.post_form
在 rails 模型中发送一个参数并获取节点中的参数.js 文件,即 server.js

模型发送.rb

def self.push(userid)
   url = "http://socket.mydomain.com/push"
   res = Net::HTTP.post_form(URI.parse(URI.encode(url)),data)
end

server.js

app.post('/push', function (req, res) {
  console.log(req.param.userid)
});

请求变量

req.ip =127.0.0.1
req.protocol= http
req.path = /push
req.host = socket.mydomain.com
req.param

我打印了所有值,但参数始终为空,有什么解决方案吗?提前致谢! :D

【问题讨论】:

  • data 中的res = Net::HTTP.post_form(URI.parse(URI.encode(url)),data) 是什么?
  • data = Hash.new data[:userid] = "ebhwang" 顺便说一句,我使用 url url = "http://socket.mydomain.com/push/#{userid}" app.post('/push/:userid', function (req, res) { console.log(req.params.userid) }); 解决了这个问题,但 req.param 变量仍然为空

标签: ruby-on-rails node.js express socket.io net-http


【解决方案1】:

在 Express 中,如果您发出 use app.use(express.bodyParser());,您可以通过 req.body.searchText 检索 HTML 表单中发布的值(HTTP POST)。请注意,HTML 表单值来自 req.body,而不是 req.params。

话虽如此,当您使用 Socket.io 而不是 HTML 表单上的“普通”HTTP POST 时,我不确定这些值是如何提交到服务器的。

我知道这不是对您问题的确切答案,但我想提一下“正常”HTML 表单值的处理方式,以防万一它有帮助,而且这是很长的时间作为评论包含在内。

【讨论】:

    猜你喜欢
    • 2011-10-02
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多