将json对象保存到文件

时间:2013-11-01 14:22:27

标签: php ajax json jquery

我需要将json对象保存到文件中。 因此我正在使用另一个将数据写入文件的PHP脚本。数据和文件名由ajax POST请求发送。

var results = $('results');
var filename = $('#filename').val();

$.ajax({
    url: 'jsonWriter.php',
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: JSON.stringify([{data: data, filename: filename }]),
    success: function(data) {
        results.html(data);
    },
    error: function(jqXhr, textStatus, error) {
        results.html("<p class=\"error\">ERROR: " + textStatus + ", " + error + "</p>");
    }
});

当我在Fiddler中监视请求时,它看起来很好并且发布的数据是正确的。 但是,不知何故调用了错误函数。它输出

ERROR: parsererror, SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data

我将Fiddler发布的JSON数据复制到不同的在线解析器中,确保它有效。

为什么还要调用错误函数?

1 个答案:

答案 0 :(得分:1)

我认为您希望服务器返回文本内容,因为您使用.html应用它:

success: function(data) {
    results.html(data);
},

但是,你告诉jQuery期待JSON数据:

dataType: "json",
因此,jQuery试图将您从服务器返回的内容解析为JSON并失败。您需要将dataType更改为texthtml