Json Uncaught SyntaxError: Unexpected token: как решить?

205
26 февраля 2019, 17:50

При отправке GET запроса на сервер получаю:

data.json?callback=jQuery1111073…1539940574412&=1539940574413:2
Uncaught SyntaxError: Unexpected token :

$.ajax({
  url: 'http://www.mrsoft.by/data.json',
  jsonCallback: 'data',
  dataType: 'jsonp',
  success: function(json) {
    alert(json);
  }
});
Answer 1

Чтобы выполнить запрос ajax в jsonp, необходимо чтобы сервер отдавал ответ в специальной обертке, по этой ссылке http://www.mrsoft.by/data.json отдается обычный json. Вот тут можно почитать https://learn.javascript.ru/ajax-jsonp .

Кроссдоменный ajax в json вы не сможете сделать, из-за ограничений браузера. Как вариант, можно сделать ajax запрос к себе на бекенд (не jsonp), а оттуда уже выполнить кроссдоменных запрос, например, curl-ом, и вернуть результаты себе в javascript.

Вот пример использваний curl на PHP:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
$data = curl_exec($ch);
$data = json_decode($data, true);
curl_close($ch);
READ ALSO
Доработка java кода, связь клик-выбор

Доработка java кода, связь клик-выбор

Помогите пожалуйста сделать связку в калькуляторе на сайте - https://el-terminalru/rasschitat-stoimost

176
Не видит переменную (Vue) [дубликат]

Не видит переменную (Vue) [дубликат]

На данный вопрос уже ответили:

195
Как добавить событие на клик в Toggle Menu?

Как добавить событие на клик в Toggle Menu?

Как сделать так, чтобы при клике на пункт меню сработало событие закрытия этого меню?

166
IndexOf не находит элемент в массиве

IndexOf не находит элемент в массиве

Добавляю в массив элементы страницы (td), вывожу(consolelog(arr);)(пример):

201