rails控制器未收到Ajax调用

时间:2018-03-20 17:13:39

标签: javascript jquery ruby-on-rails json ajax

通过jQuery的Ajax调用将始终被传输(状态200),但有时只有它被rails控制器接收。表示数据正确发送,但大多数时候控制器发回一个空的json对象作为响应。我需要超时,否则stringify不起作用。任何提示?

setTimeout(function() {
      $.ajax({
        type: "POST",
        url: "homepage/routes",
        data: {
          routes_my: JSON.stringify(routes)
        },
        success: function(data) {
          console.log(data);
        }
      });
    }, 100);
  }

#Controller
      def routes
        @routes = JSON.parse(params\[:routes_my\], object_class: OpenStruct)
        render :json => @routes
      end

console log working example

console log bad example

2 个答案:

答案 0 :(得分:0)

尝试此功能。

$(document).ready(function(){
    var obj = JSON.stringify(routes);
    $.ajax({
            type: "POST",
            url: "homepage/routes",
            data: {routes_my: obj},
            success: function(data) {
              console.log(data);
            }
          });
});

答案 1 :(得分:0)

实际上问题是“路由”是异步功能的结果,有时只是部分可用。修复了通过调用Ajax作为回调函数。然后setTimeout无关紧要。