我需要将 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 数据复制到不同的在线解析器中,这确保了它的有效性。
为什么仍然调用错误函数?
在我看来
,您期望服务器返回文本内容,因为您正在将其应用于.html
:
success: function(data) {
results.html(data);
},
但是,你告诉jQuery需要JSON数据:
dataType: "json",
因此,jQuery正在尝试将从服务器返回的内容解析为JSON,但失败。您需要将dataType
更改为 text
或 html
。