在ajax请求中使用jquery获取javascript响应UJS
Using jquery in ajax request to get javascript response UJS
在Rails中,您可以响应不同的MIME类型,包括application/javascript
。您经常将这种MIME类型用于ajax请求,以将javascript发送回要评估的浏览器。respond_to
符号是:js
。
我看到这样的例子:
<%= form_tag('/articles', remote: true) do %>
...
<% end %>
<%= link_to "Delete article", @article, remote: true, method: :delete %>
rails.js文件查找远程链接、表单和输入,并覆盖它们的点击事件,以便通过AJAX提交到服务器。
服务器有这样的东西:
respond_to do |format|
format.js
end
在我的情况下,我需要在jQuery中进行请求,所以我不能使用remote:true功能。
<%= form_for @tag do |f| %>
<%= f.fields_for :taggings, f.object.taggings.build do |taggings_builder| %>
<%= taggings_builder.hidden_field :tagging_flag, value: @contact.flag %>
<% end %>
<%= f.text_field :name, class: 'form-control', placeholder: 'Add a tag and press enter' %>
<% end %>
我的问题是,当我在jquery ajax
方法中将contentType
指定为'application/javascript'
时,没有表单数据发送到服务器。我甚至在chrome上的"网络"选项卡中检查过它。删除contentType
属性时,表单数据会提交到服务器,但内容类型不是"application/javascript
"。它是"application/x-www-form-urlencoded; charset=UTF-8
"。
我的jquery看起来是这样的:
$view.on('keypress','form#add-tag input#tag_name', function(e){
var $form = $(this).closest('form');
var key = e.which;
if(key == 13){
$.ajax({
type: "POST",
data: $form.serialize(),
contentType: 'application/javascript',
url: $form.attr('action'),
beforeSend: function() {
$('.loading').show();
},
complete: function(){
$('.loading').hide();
},
success: function(resp){
}
});
return false;
}
})
如何将内容类型为"application/javascript"的表单数据发送到服务器?
contentType
选项用于指定发送到控制器的参数的格式。要指定响应中预期的数据类型,请使用dataType
选项;指定script
意味着您期望使用Javascript,这将发送Accept: application/javascript
头,该头告诉控制器应该使用哪个respond_to
块。
$.ajax({
type: "POST",
data: $form.serialize(),
dataType: 'script',
url: $form.attr('action'),
beforeSend: function() {
$('.loading').show();
},
complete: function(){
$('.loading').hide();
},
success: function(resp){
}
});
相关文章:
- 从ajax请求中获取javascript对象
- 以同步方式获取Javascript Promise的值
- 获取javascript中的公钥格式
- 获取javascript函数中的按钮名称
- 如何在C#中获取Javascript变量值
- 从其名称获取javascript数组对象
- 如何从Selenium获取JavaScript值
- 如何获取javascript输入并在html中调用它
- 获取javascript函数中另一个javascript函数的响应
- 获取javascript中输入元素的索引
- 获取javascript中json_encoded数组的元素
- 在ajax请求中使用jquery获取javascript响应UJS
- 获取Javascript中单选按钮的true或false
- 获取javascript中的元数据属性
- 获取Javascript中DOM元素的screenX
- 如何在事件处理程序中获取 javascript 事件对象
- 使用 JQuery 从表单中获取 javascript 多维数组
- 获取 JavaScript 中复选框的值
- 如何从函数名称中获取JavaScript的源代码
- VBA中有没有一种方法可以获取javascript生成的元素