为什么这个JSON字符串的内容在我的ajax调用中发生了变化?

时间:2012-01-27 22:05:29

标签: jquery json

我正在尝试将一组JSON对象传递给我的控制器。当我在ajax调用之前插入警报时,JSON似乎格式正确并且所有变量都已正确填充。但是,当我检查ajax调用的有效负载时,我看到一些变量包含空值。可能是什么导致了这个?我在jQuery的某个地方犯了错误吗?

function postToController(instructionsJSON) {
    alert(instructionsJSON); 
    $.ajax({
        type: "POST",
        url: "/Traffic/create",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: instructionsJSON,
        success: function (result) {
            console.log(result);
        },
        error: function (error) {
            alert(error);
        }
    });
}

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

在我看来,你正在检查两组不同的数据。

alert(instructionsJSON); // the client data

// ...

console.log(result); // data returned from the server

如果您的服务器应该返回相同的数据,但存在差异,那么它与服务器在返回数据之前所做的任何事情有关。

答案 1 :(得分:1)

通常,您将数据作为键/值对发送到服务器端页面。在你的情况下,var'inscriptJSON`是一个JSON数组而不是JSON。所以它需要作为一个键/值对传递,它将保存这个数组。

function postToController(instructionsJSON) {
    alert(instructionsJSON); 
    $.ajax({
        type: "POST",
        url: "/Traffic/create",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: { dataFeildName: instructionsJSON },
        success: function (result) {
            console.log(result);
        },
        error: function (error) {
            alert(error);
        }
    });
}