我正在尝试在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);
,所以我不确定为什么它没有在我的代码中做任何事情。
任何帮助将不胜感激。
答案 0 :(得分:0)
我发现了为什么没有得到我期望的答复。这是一个jQuery函数,但我使用的是JavaScript变量声明来定义myJSON
。
简而言之,我需要从var
中删除var myJSON = JSON.stringify(data);
编辑:
在该函数中使用'use strict';
会使这些变量未定义,这可能意味着我最初是在覆盖它们-导致400和/或422错误。
编辑2:
我收到422错误,因为当我的参数正在寻找content
时,我的数据对象的键为body
。