0

我需要将 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

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

为什么仍然调用错误函数?

4

1 回答 1

1

在我看来,您希望服务器返回文本内容,因为您正在应用它.html

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

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

dataType: "json",

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

于 2013-11-01T14:27:32.373 回答