加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用rails remote:true参数与JSON?

发布时间:2020-12-16 19:37:29 所属栏目:百科 来源:网络整理
导读:在使用rails remote:true参数提交ajax请求时,如何指定我想要返回 JSON对象?一旦 JSON对象被返回,我如何抓住并使用它? 解决方法 根据您的具体情况,有很多方法可以回答(例如:您正在使用jquery和UJS适配器),但是我将使用自己的文档发布文章,以更好地了解整
在使用rails remote:true参数提交ajax请求时,如何指定我想要返回 JSON对象?一旦 JSON对象被返回,我如何抓住并使用它?

解决方法

根据您的具体情况,有很多方法可以回答(例如:您正在使用jquery和UJS适配器),但是我将使用自己的文档发布文章,以更好地了解整个过程:
我在很大程度上使用这个伟大的 post:我会更新我的答案,因为我目前正在通过这个东西自己做.

您可以将数据类型属性添加到DOM元素中,如下所示:

<%= link_to "Add a new task",new_project_task_path(@project),"data-type" => "json",:id => "add_task_btn" %>

您还可以在jQuery的全局$.ajaxSetup()函数中定义默认的dataType.更改所有Ajax请求:

$.ajaxSetup({
     dataType: 'json'
});

而第三种方式是在beforeSend回调中:

$(“#add_some_button”).live(“ajax:beforeSend”,function(e,xhr,settings){
      new_data_type = “application/json,text/javascript,*/*; q=0.01”;
      xhr.setRequestHeader('accept',new_data_type);
})

(q = 0.01是0和1之间的偏好)

因此,您可以更改该数据类型属性和HTTP标头以满足您的需要.
以下是可以使用的MIME类型列表:Here

而具体的javascript媒体类型列表:Here

从服务器发送的数据格式概述:
1.)Ajax将Accept标头的请求发送到所需的MIME类型.
2.)Rails控制器检查Accept标头以确定应该返回的内容.
3.)控制器将确定该操作是否处理特定的MIME类型.
在rails 3中,我们可以使用respond_with,pre 3.0在控制器动作中设置一个respond_to块.

概述Ajax可以在Rails 3.1中使用的方法:

我相信现在的首选方法是使用默认的dataType作为脚本,然后使用js.erb或js.coffee文件处理AJAX请求.

选项:
1.)单击事件:插入DOM元素
2.)通过Ajax提交表单
3.)通过Ajax删除
4.)使用Ajax的客户端验证(在输入字段上使用数据远程)
5.)添加动态选择(在选择字段上使用数据远程)
6.)Ajax分页 – 直接返回HTML.

再次,我包括在这里是我自己的大纲/审查,要获得详细信息,请查看安德烈·辛格的伟大的帖子here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读