【问题标题】:rails 5.2 how to get form-data value in controllerrails 5.2 如何在控制器中获取表单数据值
【发布时间】:2019-02-18 18:00:17
【问题描述】:

我有一个简单的 HTML 表单,我正在使用 Fetch API 和 FormData 将一些数据发送到我的服务器。

我正在将 role 和 user_id 及其值发送到服务器。在控制器中,当我打印 params 时,我得到:

{"----------------------------1190833731009709688837505639\r\n内容配置:表单数据;名称"=> "\"角色\"\r\n\r\n管理员\r\n-----------------------------1190833731009709688837505639\r \nContent-Disposition: form-data; name=\"user_id\"\r\n\r\n1\r\n---------------------- -------1190833731009709688837505639--\r\n", "controller"=>"users", "action"=>"updaterole", "id"=>"1"}

如何访问并从中获取 role 和 user_id 值?

这是我在客户端的脚本:

var form = document.querySelector("#roleForm");
var formdata = new FormData(form);

fetch(url, {
    method: "PATCH",
    headers: { 'Content-Type':'multipart/form-data' },
    body: formdata,
}).then(
    response => response.text() // .json(), etc.
    // same as function(response) {return response.text();}
).then(
    html => {
        console.log(html)
    }
);

【问题讨论】:

  • 你能打印你在服务器上看到的params 的值吗?发布您的问题时,它似乎丢失了。
  • 这里你去..当我在控制台中打印参数时:{“--------------------------- --1190833731009709688837505639\r\n内容配置:表单数据;名称"=>"\"角色\"\r\n\r\n管理员\r\n-------------- ---------------1190833731009709688837505639\r\n内容配置:表单数据;名称=\“user_id\”\r\n\r\n1\r\n---- -------------------------1190833731009709688837505639--\r\n", "controller"=>"users", "action"=>"updaterole ", "id"=>"1"}
  • hmmm 好像正文不对,尝试手动创建formdata对象(formdata = new FormData(); data.append('role', selected_role); data.append('user_id', theuserid))只是为了让内容更明确
  • 如果您没有文件上传,请尝试将 json 有效负载发送到服务器。但是您需要将内容类型更改为application/json。
  • 是的,感谢大家的帮助...我刚刚在 fetch 请求中删除了 (headers: { 'Content-Type':'multipart/form-data' }),现在我的问题已经解决了跨度>

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

在我的情况下,它已经在 cmets 中提到过,我们的身体不正确。 我通过删除 headers: { 'Content-Type':'multipart/form-data' }, 表单获取请求来解决它。看起来我们不需要将 Content-Type 添加到标题中。无论如何,我的问题由此解决了。

【讨论】:

  • 为我工作,谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
相关资源
最近更新 更多