Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросов. Файл, в котором обрабатываются данные, в результате своей работы возвращает 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
. Что с этим можно сделать?
Странно, но почему-то PHP по прежнему возвращает строку, а не json-массив(хотя, должен возвращать json). Но это пол беды. Дело было в том, что почему-то первый символ в строке был - пробел. Из-за чего JSON.parse не хотел принимать строку и начинать её конвертирование в json-объект. Проблема решилась удалением пробела.
JSON.parse(data.trim())
Также для запроса json можно в php установить заголовок header('content-type:application/json');
а в jQuery указать тип данных $.ajax({url:[url], dataType:'json'})
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня в системе есть автоматические задачи при изменении статуса клиента, автоматически ставится задача у которой есть значение "выполнить...
Хочу вывести таблицу с данными в 3 колонки - не получаетсяПрошу помочь
Добрый день,уважаемые форумчане,достался мне недоделанный сайт,прошлый разработчик по желанию заказчика сделал вывод категорий по ID на отдельных...
Подскажите готовый пакет блога для интеграции в работающий проектВсе что я видел до этого мешают работе основного проекта либо сложно управляются