Ajax javascript 控制器中来自 form_for 的响应以 javascript 呈现为纯文本
Ajax javascript response in controller from form_for is rendered with the javascript as plain text
我试图在尝试编辑用户时获得 javascript 响应。我通过在提交表单时发出 ajax 调用来执行此操作。提交表单后呈现的页面是 javascript 响应的纯文本。因此,ajax 无法正常工作,javascript 呈现为文本。
苗条 html:
= form_for @user, html: { multipart: true }, authenticity_token: true, :format => :js, remote: true do |form|
= form.label :avatar
= form.file_field :avatar
= form.submit "add an avatar!"
用户控制器中的更新方法:
def update
@user = User.find(params[:id])
logger.debug request.format
respond_to do |format|
format.js { render layout: false, content_type: 'text/javascript' }
end
end
javascript 以纯文本显示的响应:
alert("hello");
遗憾的是,没有简单通用的方法可以通过 ajax 发送多部分表单。但是你仍然可以使用这个 gem https://github.com/JangoSteve/remotipart.
来解决问题
我试图在尝试编辑用户时获得 javascript 响应。我通过在提交表单时发出 ajax 调用来执行此操作。提交表单后呈现的页面是 javascript 响应的纯文本。因此,ajax 无法正常工作,javascript 呈现为文本。
苗条 html:
= form_for @user, html: { multipart: true }, authenticity_token: true, :format => :js, remote: true do |form|
= form.label :avatar
= form.file_field :avatar
= form.submit "add an avatar!"
用户控制器中的更新方法:
def update
@user = User.find(params[:id])
logger.debug request.format
respond_to do |format|
format.js { render layout: false, content_type: 'text/javascript' }
end
end
javascript 以纯文本显示的响应:
alert("hello");
遗憾的是,没有简单通用的方法可以通过 ajax 发送多部分表单。但是你仍然可以使用这个 gem https://github.com/JangoSteve/remotipart.
来解决问题