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);
},

ただし、JSON データを期待するように jQuery に指示しています。

dataType: "json",

したがって、jQuery はサーバーから返されたコンテンツを JSON として解析しようとして失敗しています。dataTypeまたはのいずれかtextに変更する必要がありますhtml

于 2013-11-01T14:27:32.373 に答える