27
Фев
2017

Возвращает строку вместо json-объекта

Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросов. Файл, в котором обрабатываются данные, в результате своей работы возвращает json-объект. Однако, если обращаться к этому файлу через прокси-файл, то почему-то возвращается простая строка, которую почему-то невозможно распарсить при помощи JSON.parse в jQuery. Прокси:

require('../../engine/functions.php');
$origin = getDomain($_SERVER['SERVER_NAME']);
header('Access-Control-Allow-Origin: https://search.' . $origin);
$data = $_POST['data'];
//var_dump($data);
if(isset($data) && !empty($data)) {
    $options = array(
        'http' => array(
            'header'           => [
                "Content-type: application/x-www-form-urlencoded",
                "X-Requested-With: XMLHttpRequest"
            ],
            'method'  => 'POST',
            'content' => http_build_query(array('data' => $data))
        )
    );
    $context  = stream_context_create($options);
    $result = file_get_contents('https://' . $origin . '/engine/search.php', false, $context);
    if ($result === false) { 
        header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
        die();
    }
    echo json_encode($result, JSON_UNESCAPED_UNICODE);
    die();
}

При попытке парсить такую строку на клиенте, происходит ошибка Uncaught SyntaxError: Unexpected token in JSON at position 0. Что с этим можно сделать?

Источник: https://ru.stackoverflow.com/questions/633162/%D0%92%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D0%B5%D1%82-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE-json-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0

Тебе может это понравится...

Добавить комментарий