我想在点击图片时使用ajax更新页面的一部分。单击图像时,我从jQuery DataTable中提取值以填充对象。然后我调用我的动作并使用JSON.stringify()
传入对象的JSON字符串。
$("#image").click(function(e) {
data = {}
table = $("#myTable").dataTable();
$.each(table.fnGetData(), function(index, value) {
row = $(table.fnSettings().aoData[index].nTr);
data[row.find(".key")] = {
"val1": row.find(".val1").text(),
"val2": row.find(".val2").text(),
"val3": row.find(".val3").text(),
"val4": row.find(".val4").text(),
}
});
$.ajax({
url: "myAction",
contentType: "text/html",
data: {
json: JSON.stringify(data)
},
success: function(resp) {
alert(resp)
$("#myDiv").html(resp);
}
});
});
但是,调用ajax
函数会导致javascript控制台中出现“只找不到元素”的错误。当我检查网络活动时,它会尝试点击正确的网址,但会返回400 error
。
我正在保留后端细节,因为我相信stringify
方法中的某些内容会成为罪魁祸首,因为当我将字符串文字作为ajax数据(例如data: {json: "foo"}
)传递时,它会调用我的操作没问题。
答案 0 :(得分:0)
解决方案是通过将以下属性添加到ajax调用来将ajax方法指定为POST。
method: "POST"
不知道为什么会让它发挥作用,但确实如此。