Tod*_*odd 15 webforms ruby-on-rails http-headers ruby-on-rails-5
我似乎无法找到任何有关如何在Rails 5中使用自定义标头提交webform的信息.我希望我发送PUT请求的URL也会收到一些自定义标头.我很惊讶form_for没有争论.
我可以通过将表单提交到我在那里修改标题的操作来完成此操作,例如,request.headers['my-header'] = 'xyz'.然后我必须PUT在这个"中间"控制器动作中提出请求,我觉得这个额外的步骤是笨重和非常规的.
我也可以使用jQuery绑定到提交点击,并在通过JavaScript添加标题后提交表单数据.在这个过程中,我宁愿不涉及另一层(即JS).
我宁愿不做.有没有办法我可以使用Rails表单助手(或一些控制器助手)为表单提交的请求添加一些自定义标头?
Rails没有任何标签允许我们这样做,因此无法为您的请求添加自定义标头.
事实上,你不能在没有xhr插件的情况下在html表单中设置自定义标题,你必须将它与ajax一起使用.像这样: -
<%= form_tag("/your_url", method: :post, :remote => true, :html => { id: "form-id" }) do |f| %>
...your form here...
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后你ajax代码: -
$('#form-id').submit(function() {
var valuesToSubmit = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: valuesToSubmit,
headers: { 'Xmlrpc-Token': 'value' , 'Token': 'another_value'}
}).success(function(response){
//success code
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
仅使用remote:rails中的true将进行ajax调用,但您希望能够使用上面的代码对其进行自定义.
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |