Html 带有enctype='的表单;多部分/表单数据';导致';脚本头过早结束';错误
我的Rails应用程序上的用户在创建新对象时必须附加XML文件。此操作在开发(Windows)中运行良好,但在生产(Unix)中会引发以下错误 脚本头过早结束:命名空间,referer:X.X.X/namespace/objects/new 其中X.X.X.X是IP地址 我已确定控制器操作从未到达,并且在提交表单后会出现此错误。我使用Rails的form_作为标记,如下所示:Html 带有enctype='的表单;多部分/表单数据';导致';脚本头过早结束';错误,html,ruby-on-rails,forms,apache,passenger,Html,Ruby On Rails,Forms,Apache,Passenger,我的Rails应用程序上的用户在创建新对象时必须附加XML文件。此操作在开发(Windows)中运行良好,但在生产(Unix)中会引发以下错误 脚本头过早结束:命名空间,referer:X.X.X/namespace/objects/new 其中X.X.X.X是IP地址 我已确定控制器操作从未到达,并且在提交表单后会出现此错误。我使用Rails的form_作为标记,如下所示: <%= form_for @object, url: new_object_path, html: { class
<%= form_for @object, url: new_object_path, html: { class: 'form-horizontal' } do |form| %>
<%= render partial: 'form', locals: { form: form } %>
<% end %>
并且表单部分包含此文件上载字段:
<%= form.file_field :xml, accept: '.xml', required: true %>
这将生成以下HTML:
<form accept-charset="UTF-8" action="/namespace/objects" class="form-horizontal" enctype="multipart/form-data" id="new_object" method="post">
...
<input accept=".xml" id="object_xml" name="object[xml]" required="required" type="file">
...
</form>
...
...
对我来说,这看起来是一个完全合理的形式,但它抛出了这个奇怪的错误。如果我删除enctype=“multipart/form data”
错误将消失,并调用控制器操作!这会产生另一个问题,控制器操作只接收文件名,而不是上载的文件本身,但是,嘿,至少我们现在正在执行控制器操作,我已经查明了问题所在
所以我的问题是:为什么这个看似合理的、自动生成的Rails表单及其enctype字段会导致抛出这个(非常模糊和没有帮助的)错误
这是我们正在使用的软件
- 飞信客运4.0.41
- Apache/2.2.15(Unix)
- Red Hat Enterprise Linux Server 6.2
- 厨师长10.24.0
- Ruby 1.9.3
- 轨道4.1.4
- JRuby 1.7.16