json_encode, создающий искаженный JSON (с дополнительным скрытым символом)

Я использую PHPjson_encode() вернуть некоторые данные, полученные с помощью jQuery'sajax():

Упрощенный JS:

$.ajax({
    dataType: 'json',
    contentType: 'application/json',
    cache: false,
    type: 'POST',
    url: './api/_imgdown.php',
    error: function(jqXHR, textStatus, errorThrow) {
        console.log(jqXHR, textStatus, errorThrow);
    },
    success: function(data, textStatus, jqXHR) {
        console.log(data, textStatus, jqXHR);
    }
});

PHP это:

header('Content-Type: application/json; charset=UTF-8');
//default apiResponse
$apiResponse = [
    "status" => 1,
    "message" => "success",
    "data" => null
];

Затем, когда php запускает мой код, он заканчивается добавлением этих данных:

$apiResponse['data'][] = [
    "mid" => (int)$mid,
    "card_type" => $card_type,
    "header_size" => (int)$headers['Content-Length'],
    "saved_size" => (int)filesize($imgSavePath),
    "saved_path" => $imgSavePath
];
//spit out the JSON
echo json_encode($apiResponse);
exit();

JSON:

{"status":1,"message":"success","data":[{"mid":340052,"card_type":"kakusei","header_size":48337,"saved_size":48337,"saved_path":"..\/card\/kakusei\/340052.png"}]}

Сначала это кажется действительным. Мой Ajax, который извлекает этот PHP, всегда заканчиваетсяparseerror (таким образом, входя вerror частьajax()).

Если вы копируете и вставляете этот JSON наhttp://jsonlint.com/, он говорит «Неожиданный токен» иhttp://jsonformatter.curiousconcept.com/ говорит не действует.

я пробовалecho json_encode($apiResponse, JSON_UNESCAPED_SLASHES); несмотря на то, что убежать от косой черты в порядке\/ но без разницы

Но что не совсем верно? Разве PHP не должен возвращать действительный JSON?

Дополнительная информация: Тестирование на Windows7, Chrome v28.XX, с использованием PHP 5.4.XX на Apache

Вопросы, которые я прочитал, прежде чем опубликовать этот:

json_encode создает искаженные данные JSON?https://stackoverflow.com/a/15654848/684932о json_encode и ajax dataType: "json"php json_encode не возвращает правильную строку в кодировке json

Обновить:

Копирование из SO в JSONlint дает действительный JSON. Поэтому я немного углубился в изучение и заметил, что PHP создает странный скрытый символ, который фактически делает json недействительным. Смотрите скриншот ниже. Как мне это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос