以下は、あるページのコード フラグメントです。
$("#add_new").button().click(function (ui,event) {
var postdata = {
"action":"new",
field_kind_id:2,
collection_id:null,
parent_id:null,
app_struct_id:null,
member_id:1033,
app_id:1003,
};
$.ajax({
url: "?",
type: "POST",
data: postdata,
error: function(jqXHR, textStatus, errorThrown) {
$().toastmessage("showErrorToast",
"AJAX call failed: "+textStatus+" "+errorThrown);
},
success: function(data) {
edit_record(data);
return false;
}
});
});
実際、POST されたデータは次のようなものです。
action new
app_id 1003
app_struct_id null
collection_id null
field_kind_id 2
member_id 1033
parent_id null
応答は次の文字列です。
{\x22app_id\x22:1003,\x22member_id\x22:1033,\x22collection_id\x22:\x22-6885\x22,\x22field_kind_id\x22:2,\x22sample_id\x22:\x22\x22,\x22parent_id\x22:\x22\x22}
応答は有効な json データではありません。特別なフォーマットがあります。私の問題は、上記の ajax 呼び出しで次のトースト メッセージが表示されることです。
「AJAX 呼び出しに失敗しました: パーサー エラー SyntaxError: 不正な文字」
そのため、AJAX 呼び出しが失敗したようです。しかし、何が構文をチェックしているのかわかりませんか?どのような構文ですか?JQuery Ajax 呼び出しに「dataType:json」が指定されていませんでした。したがって、チェックする構文はありません。私は何が欠けていますか?
JQueryのドキュメントによると、「dataType」のデフォルト値は「インテリジェント」です
「Intelligent Guess (xml、json、script、または html)」
応答が JSON 値として解釈できない場合、それは JSON 値ではありませんよね? それは有効な JSON 値ではない (その場合、変換されるべきではない) か、そうである (ただし、例外をスローすべきではない) かのどちらかです。