在jQuery ajax调用中使用JSON stringify方法时出现“找不到元素”错误

时间:2016-09-26 19:07:27

标签: javascript jquery json ajax

我想在点击图片时使用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"})传递时,它会调用我的操作没问题。

1 个答案:

答案 0 :(得分:0)

解决方案是通过将以下属性添加到ajax调用来将ajax方法指定为POST。

method: "POST"

不知道为什么会让它发挥作用,但确实如此。