【问题标题】:Why is Sinatra web server giving a 500 error from this POST method?为什么 Sinatra 网络服务器从这个 POST 方法中给出 500 错误?
【发布时间】:2016-06-01 03:47:21
【问题描述】:

我正在使用 Sinatra 构建一个 Ruby Web 应用程序,并且正在使用一个表单将参数传递给一个 POST 页面,该页面应该根据这些参数呈现动态内容。

但是,当需要测试 POST 方法并提交表单时,浏览器中显示以下内容:

内部服务器错误

糟糕的内容正文

发生这种情况时,错误日志显示:

错误:EOFError:错误的内容正文

后面是我不使用的文件的堆栈跟踪,然后:

"POST /list/AUser'sName" HTTP/1.1 500 294

表格代码:

注意 - 此页面仅用于重定向到不同的页面,确定正确的表单 action= 属性。

<form action="/list/<%=name%>" method='post' enctype="multipart/form-data"> 
    <input type='Submit'/>
</form>

server.rb 文件中的 POST 方法:

post '/list/:name' do
    "Hello World"
end

【问题讨论】:

  • 这也是我在这里的第一个问题,所以也欢迎任何关于使我的问题更好的提示。
  • 您的表单中似乎没有任何内容正在发布。
  • 尝试在提交按钮之外使用带有值和名称的输入字段。然后会有东西发送到服务器
  • 我可能应该提到,这是一个中间页面,仅用于重定向到正确的页面,并且正在使用嵌入式 ruby​​ 来确定应该是什么。我将编辑问题以反映这一点。

标签: ruby sinatra forms http-post


【解决方案1】:

删除 enctype= 属性后,表单现在按预期工作。

据我了解,enctype 属性仅在上传需要与表单一起提交的文件时使用。我之所以将它包含在此处,是因为过去在不包含它时会发生逻辑错误的不同表单上的问题。

感谢大家的cmets和建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2015-11-10
    相关资源
    最近更新 更多