Rails / AJAX Stringify数据返回未定义

时间:2019-01-23 20:07:05

标签: javascript ruby-on-rails ajax

我正在尝试在Rails中使用AJAX发布注释(不使用remote: true,并且在理解myJSON为变量时为什么我的data变量返回为未定义状态有困难)返回预期。

这是我的代码:

function submitViaAjax() {
    $("#new_comment_button").on("click", function (e) {
        e.preventDefault();

        url = $(this.form).attr('action')

        data = {
            'comment': {
                'content': $("#comment_body").val()
            }
        };

        var myJSON = JSON.stringify(data);

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: url,
            data: myJSON,
            // headers: { 'Content-Type': 'application/json' },
            success: function (response) {
                var $ul = $("div.comments_section ul");
                $ul.append(response)
            }
        }).done(function(response){
            debugger
            var $ul = $("div.comments_section ul");
            $ul.append(response)
        })
    })
};

我可以在浏览器控制台中正常运行var myJSON = JSON.stringify(data);,所以我不确定为什么它没有在我的代码中做任何事情。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我发现了为什么没有得到我期望的答复。这是一个jQuery函数,但我使用的是JavaScript变量声明来定义myJSON

简而言之,我需要从var中删除var myJSON = JSON.stringify(data);

编辑:

在该函数中使用'use strict';会使这些变量未定义,这可能意味着我最初是在覆盖它们-导致400和/或422错误。

编辑2:

我收到422错误,因为当我的参数正在寻找content时,我的数据对象的键为body