gpt4 book ai didi

ruby-on-rails - 无效的请求参数 : invalid %-encoding when upload file to Rails api only server

转载 作者:行者123 更新时间:2023-12-04 11:04:19 26 4
gpt4 key购买 nike

我正在开发使用 Reactjs 的网络应用程序作为前端和Rails5 api only应用程序作为后端

这是我发送到服务器的数据 Request payload

------WebKitFormBoundaryCD1o71UpVNpU4v86
Content-Disposition: form-data; name="user[username]"

oeuoeoaeaoe
------WebKitFormBoundaryCD1o71UpVNpU4v86
Content-Disposition: form-data; name="user[profile_image]"; filename="gggg.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryCD1o71UpVNpU4v86--

这是我的 Controller
def update_with_image
user = current_user
if user.update_attributes(user_update_params)
# Handle a successful update.
render json: user, status: 200
else
render json: { errors: user.errors }, status: 422
end
end


private

def user_update_params
params.require(:user).permit(:username,:profile_image)
end

因此,当我尝试将图像上传到 Rails 服务器时,出现此错误
ActionController::BadRequest (Invalid request parameters: invalid %-encoding ("user[username]"

oeuoeoaeaoe
------WebKitFormBoundaryCD1o71UpVNpU4v86
Content-Disposition: form-data; name="user[profile_image]"; filename="gggg.jpg"
Content-Type: image/jpeg

????JFIF????@6"??

??F!1AQ "aq?
#2???B?????$3Rb?%Cr?????? ??A!1A"Qaq?2???BR???#b??3rS?$Cs????
??%)):

rack (2.0.1) lib/rack/query_parser.rb:72:in `rescue in parse_nested_query'
rack (2.0.1) lib/rack/query_parser.rb:61:in `parse_nested_query'

** 我使用 Rack::CorsRack::Attack作为我的中间件

我怎样才能解决这个问题?

谢谢!

最佳答案

在这个问题上浪费了一天。
正确答案在这里:https://stackoverflow.com/a/60812593/11792577
不要设置Content-Type使用 fetch 发布时的标题 multipart/form-data到 Rails api 服务器。
错误

// this is not working
fetch(
url,
{
method: 'POST', // or 'PUT'
headers: {
'Content-Type': 'multipart/form-data'
},
/*
* or
* headers: {
* 'Content-Type': '',
* 'Content-Type': undefined,
* 'Content-Type': null,
* },
*/
body
}
);
正确
fetch(url, {
method: 'POST',
headers: {},
body
});

// or delete headers['Content-Type'] if necessary

关于ruby-on-rails - 无效的请求参数 : invalid %-encoding when upload file to Rails api only server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com