我有这个ajax代码
$(document).ready(function() {
for(var i=0;i<8;i++){
$(".exac").append("<div class='ex' id='eas"+i+"' style='cursor:pointer'><h1 id='h1'></h1></div>");
}
$('.ex').click(function ()
{
var x=$(this).prop("id");
$.ajax({
type: "POST",
contentType: "application/json",
dataType: "json",
url: "/random/random",
success: function(msg){
alert(msg);
if(msg==01101){
//$('.ex').attr('disabled','disabled');
$(".ex").off('click');
$("#hello").append("<button><a href='reset.jsp'>Reset</a></button>");
}
else{
$('<p>'+msg+'</p>').appendTo("#"+x);
$("#"+x).off('click');
}
}
});
});
$('#button').removeAttr('disabled');
});
这是我的控制器
class RandomController < ApplicationController
def random
@n = 8
respond_to do |format|
#format.json { render :json => index }
format.json{render :json => ActiveSupport::JSON.encode( @n )}
format.html { redirect_to action: "index" }
end
end
end
我使用ajax选项进入控制器,我也被重定向回索引页面,但我无法在索引页面上收到@n=8
的值。我错过了一些步骤?
这是我在控制台中遇到的错误
答案 0 :(得分:0)
我不熟悉红宝石和铁轨。然而; console.log(msg)而不是alert(msg),您将看到您的数据结构,然后您可以读取数据msg.content。
我希望这有帮助!
答案 1 :(得分:0)
回答我的上述问题 我的观点
$.ajax({ url: 'random',
type: 'POST',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: {user:name},
success: function(response) {
var foo = $.parseJSON(response);
if(foo==1001){
alert("You can select only once");
}
else{
$('<p>'+foo+'</p>').appendTo("#"+x);
$("#"+x).off('click');
}
}
});
在控制器中 我必须像这样发送响应
render :text => @r.to_json