Javascript 无法访问json对象属性,并且值在rails视图中显示为未定义
我几乎看过类似的问题,但我的问题还没有解决 我有以下代码 控制器 Ajax脚本 }) 我只想获取通过ajax post请求保存到数据库的记录的id。在这里,在成功函数中,它只是警告未定义,我不知道出了什么问题 这是示例响应 从success函数中删除JSON.stringify。响应已经是JSON格式,您可以直接从中获取值 stringfy将javascript对象转换为字符串 解释 您的响应已经是JSON格式,并且在AJAX调用中使用了dataType:JSON。这将使在服务器和客户端之间传输JSON数据成为可能。 当您的响应已经是JSON格式时,您可以使用它的属性而无需解析它。即响应id 如果您没有使用dataType:JSON,并且要将来自控制器的JSON编码响应传递给查看文件,则必须首先对响应进行解码以获取其值Javascript 无法访问json对象属性,并且值在rails视图中显示为未定义,javascript,jquery,ruby-on-rails,json,ajax,Javascript,Jquery,Ruby On Rails,Json,Ajax,我几乎看过类似的问题,但我的问题还没有解决 我有以下代码 控制器 Ajax脚本 }) 我只想获取通过ajax post请求保存到数据库的记录的id。在这里,在成功函数中,它只是警告未定义,我不知道出了什么问题 这是示例响应 从success函数中删除JSON.stringify。响应已经是JSON格式,您可以直接从中获取值 stringfy将javascript对象转换为字符串 解释 您的响应已经是JSON格式,并且在AJAX调用中使用了dataType:JSON。这将使在服务器和客户端之间传输
var d = $.parseJSON(response);
alert(d.id);
直接使用response.id,您不需要JSON.Stringify谢谢您的回答,它工作得很好。您能详细解释一下哪里出了问题吗?我是前端和rails的新手。请检查我回答中的解释。希望你现在明白了。另外,如果答案解决了您的问题,请将其标记为已批准:谢谢@sagargautam谢谢你的时间和友好的信息,我会接受这个答案
$(document).on('click','.add', function(){
count = 0;
user_id = $('#user_id').val();
var name = $('.new-list').val();
var current = $(this);
if(name){
$.ajax({
method: 'POST',
url: action,
dataType: 'JSON',
data: {
task_list: {
name: name,
user_id: user_id
}
}
}).success(function(response){
var data = JSON.stringify(response);
alert(data.id);
$(current).parent().parent().parent().before(
'<div class="col-md-12">'+
'<a href="task_list/" class="btn btn-xs list ">'+name+'</a>'+
'</div>'
);
$(current).parent().parent().parent().remove();
$('.add-list').show();
});
}else{
alert('please add title');
}
.success(function(response){
alert(response.id);
var d = $.parseJSON(response);
alert(d.id);