Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在前端javascript上处理对Rails控制器的AJAX POST调用的应答_Javascript_Jquery_Ruby On Rails_Ajax_Post - Fatal编程技术网

在前端javascript上处理对Rails控制器的AJAX POST调用的应答

在前端javascript上处理对Rails控制器的AJAX POST调用的应答,javascript,jquery,ruby-on-rails,ajax,post,Javascript,Jquery,Ruby On Rails,Ajax,Post,首先,我在前端对rails控制器进行AJAX POST调用: var request=$.ajax({ url: url_up, type: "POST", beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))}, data: {q_param: { title: title

首先,我在前端对rails控制器进行AJAX POST调用:

var request=$.ajax({
    url: url_up,
    type: "POST",
    beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
    data: {q_param: {
             title: title, 
             total: total,
             list: list,
             client: idclient,
             tax_rate: tax_rate 
           }},
    success: function(data, textStatus, jqXHR) {
              quote_id=data;
              return false;
            },
    dataType: "json"
    });
这个调用运行良好,我可以在控制器端看到它。控制器呈现json应答:

def create
      @client=Client.find_by_id(params['q_param']['client'])
      @quote = @client.quotes.create(quote_p)
      render json:  {:quote_id=>@quote.id}
end
执行此操作时,我希望quote_id变量具有@quote.id。但它不。。。 你能告诉我怎么了吗?
感谢

最后,我检测到AJAX调用的success方法中的数据变量正在获取json对象,而不是执行以下操作:

quote_id=data;
我决定调用一个函数

goShow(data.quote_id);
我可以得到好的报价id。 我不明白为什么另一种方法不起作用。。。
感谢Misha的帮助调试。

问题在于验证失败,您的报价没有保存。检查
@quote.errors
以查看问题所在。我没有看到任何错误,因为该quote在数据库中存储良好。顺便提一下,这个命令给了我=>#再看看你的问题,我认为问题在于:你在做
quote\u id=data
,但是
data
将包含整个JSON。要获得
quote\u id
,您必须执行
quote\u id=data.quote\u id
。我同意,但问题是quote\u id最后没有定义:它甚至不是一个对象。所以我猜问题在ajax答案的其他地方。谢谢你的帮助顺便说一下,我试过了,但没用。它没有定义。。。谢谢