$.ajaxで取得したJSONがresponseTextでしか取得できない場合の対処法

上記の事象が発生してしまったが、
全く理由が分からない、もしくは原因を探している時間がないといういかんともしがたい場合の強引な対処法です。

var result = $.ajax({
async: false,
type: ‘POST’,
url: ‘data.json’,
dataType: ‘json’,
responseType: ‘json’
});

つまり、こういった場合に受け手側で頑張っても、resultにはresponseTextでしかデータが受け取れない場合。
あるのか?→あるんです。
JSON側のヘッダーがおかしいんじゃないの?→下記のように設定しても何故かTEXTでしか取れないことがあるんですよ。

header(“Content-Type: application/json; charset=utf-8”);

JSON.parse()を使います。

var r = JSON.parse(result);

参考:JSON.parse() – JavaScript | MDN

SNSでシェア