我的 Rails 应用程序中有一个来自页面的 Ajax 请求,如下所示:
$.ajax({
type: 'POST',
url: '/users/create/',
data: "screen_name=<%=@user.screen_name%>",
success: createSuccessHandler,
error: createErrorHandler,
complete: hideLoadingImage
});
当前操作的响应如下:
respond_to do |format|
format.js { render :text => @user}
format.html { redirect_to @user }
end
创建操作工作正常,但如何在我的成功方法中获取返回值(数据),以便我可以执行类似的操作?
function createSuccessHandler(data) {
$("#div1").append(data.value1);
$("#div2").append(data.value2);
}
基本上,我试图将数据分成不同的变量。
最佳答案
在 Controller 中返回 json(例如,添加 format.json
节并请求该节而不是 .js 节)。然后在您的 createSuccessHandler
函数中,您将执行以下操作:
var foo = eval(data);
$("#div1").append(foo.value1);
$("#div2").append(foo.value2);
请注意,某些 javascript 库(如 jQuery)提供了比使用 eval
更安全的方法来处理 json,请随意使用这些方法。
关于jquery - 如何从返回的 jQuery Ajax 数据中获取 Rails 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4963440/