为什么我在使用JSON成功上传后获得空值?

时间:2011-07-31 23:54:00

标签: json jquery

我需要使用JQuery 1.5.2在服务器上上传一些数据。这些数据必须是base64编码图像,浮点值和整数值。这是我的代码: 更新的代码:

    $.ajax({
    type: "POST",
    datatype: "json",
    url: "http://myURL.json",
    data: { id: id, image: "jhbjh", lat: 2.6, lng: 3.4},
    success: function () {
        alert('Successfully uploaded');
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert('Error on upload: ' + textStatus + " thrown " + errorThrown);
    }
});

唯一成功上传的参数是整数值id ,这对我来说似乎很奇怪,但其余的值在服务器上为null。我试图手动更改值以获得测试原因(如上面的代码所示),但我仍然得到空值。我的数据如下所示,我得到空值:

data: { id: id, image: encodedImage, lat: latitude, lng: longitude},

服务器的开发人员坚持认为空值是我的代码的问题,并且服务器在多次测试后工作正常。我的错误在哪里?能否请您提供一些代码的答案给我一个例子?

1 个答案:

答案 0 :(得分:1)

你有一些错误,首先,你为什么要发送json?实际上将json发送到Web服务器是非常罕见的。所以只需完全删除带有contentType的行。 (除非你真的发送json,在这种情况下你需要一些额外的代码。)

其次,你不能通过ajax发送图像。我假设您是指用户上传的文件。除非您只需要新的浏览器支持,否则您可以通过ajax使用文件API。

如果您需要上传文件,则必须通过隐藏的iframe方法进行上传。使用jQuery Form Plugin可以轻松实现这一目标。

如果你真的要发送json,你需要自己编码成一个字符串,并且还包括processData: false