【发布时间】: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