我需要使用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},
服务器的开发人员坚持认为空值是我的代码的问题,并且服务器在多次测试后工作正常。我的错误在哪里?能否请您提供一些代码的答案给我一个例子?
答案 0 :(得分:1)
你有一些错误,首先,你为什么要发送json?实际上将json发送到Web服务器是非常罕见的。所以只需完全删除带有contentType的行。 (除非你真的发送json,在这种情况下你需要一些额外的代码。)
其次,你不能通过ajax发送图像。我假设您是指用户上传的文件。除非您只需要新的浏览器支持,否则您可以通过ajax使用文件API。
如果您需要上传文件,则必须通过隐藏的iframe方法进行上传。使用jQuery Form Plugin可以轻松实现这一目标。
如果你真的要发送json,你需要自己编码成一个字符串,并且还包括processData: false
。