jquery - 如何从返回的 jQuery Ajax 数据中获取 Rails 变量?

标签 jquery ruby-on-rails ajax

我的 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/

相关文章:

javascript - 在日期选择器插件中显示日期和日期

javascript - 如何使用 while 循环为显示的每个输入按钮创建单独的单击事件

ruby-on-rails - HABTM重复记录

javascript - 如何使用 Ruby 验证 webhook? (在 rails 中)

JavaScript + SQL、.NET

php - 这个 jQuery 选择器的问题

javascript - 仅当用户不滚动自己时,如何在加载时滚动页面?

ruby-on-rails - 如果模型属性为 nil,Ruby on Rails 将返回一个字符串

java - 在 Spring mvc 应用程序中,@RequestBody 抛出 java.io.EOFException

jquery - 两个 AJAX 函数调用 - 最佳实践