尝试使用JSON上传多个数据 - jQuery。为什么不工作?

时间:2011-07-30 21:32:37

标签: javascript json jquery

我正在使用jquery-1.5.2.js开发一个Web应用程序。我尝试上传的服务器是JSON格式的。我试图上传四个变量到服务器,但我收到一个错误。我的代码如下:

- 使用以下建议更新了代码,但仍无效:

image= JSON.stringify(imageEncode, replacer);
name = JSON.stringify(name, replacer);
id = JSON.stringify(id, replacer);
comments = JSON.stringify(comments, replacer);

function data_post(){
$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: "example/new.json",
    data: "{'image': '" + image + "', 'name': '" + name + "', 'id': '" + id + "', 'comments': '" + comments + "'}",
    success: function () {
        alert('Successfully uploaded');
    },
    error: function () {
        alert('Error on upload');
    }
});}

为什么我仍然收到“上传错误”消息?

3 个答案:

答案 0 :(得分:0)

可能存在服务器错误但我可以从thiscode建议一个问题,确保您的数据是字符串化的。 base64EncodeImage是一个嫌疑人,但也要检查其他人。您需要发送有效的JSON。你在服务器上收到任何东西吗?

答案 1 :(得分:0)

检查“数据”json。您提供的代码可以使用,如果您将使用此代码:

data: "{'image': '" + base64EncodeImage + "','name': '" + photoName "',...

答案 2 :(得分:0)

您收到的错误是“未找到”。这意味着您没有在服务器上设置example/new.json的处理程序。您需要配置服务器软件以了解如何处理example/new.json等URL,您还应该考虑使用url选项的绝对路径,这样您就不必关心您所处的位置运行JavaScript时,像/example/new.json这样的东西可以更好地为您服务。

此外,$.ajaxdata选项可以是一个简单的对象:

$.ajax({
    data: { image: image_data, comments: comments, //...
    //...
});

没有必要自己对JSON进行编码,让jQuery处理它。