我需要将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数据复制到不同的在线解析器中,确保它有效。
为什么还要调用错误函数?
答案 0 :(得分:1)
我认为您希望服务器返回文本内容,因为您使用.html
应用它:
success: function(data) {
results.html(data);
},
但是,你告诉jQuery期待JSON数据:
dataType: "json",
因此,jQuery试图将您从服务器返回的内容解析为JSON并失败。您需要将dataType
更改为text
或html
。