JSONP не работает

217
05 марта 2018, 02:10

Отправляю запрос следующим образом:

$.ajax({
    url: 'Адрес сайта (кроссдоменный запрос)',
    dataType: 'JSONP',
    jsonpCallback: 'callback',
    type: 'GET',
    success: function (data) {
        console.log(data);
    }
});

В ответ получаю JSON: {TEST: "TEST_MESSAGE"}

Но в консоли браузера пишет: Uncaught SyntaxError: Unexpected token :

Как решить данную проблему и получить уже ответ в виде JSON, ну а потом соответственно распарсить его?

Запрос кросдоменный

Answer 1

Небольшое отступление

JSONP предполагает, что данные, возвращаемые с сервера оборачиваются в специальную функцию, имя которой передается на сервер в параметре callback.

Например, если клиент отправил на сервер JSONP запрос

GET www.example.com/something.php?callback=foo123

То сервер должен вернуть вот такой документ:

foo123({"test": "data"});

обратите внимание на функицю foo123

Если говорить о вашей проблеме, то конструкция

{TEST: "TEST_MESSAGE"}

является корректным JSON сообщением, однако это не JSONP (нет оборачивающей функции).

Как следствие, единственный способ решить вашу проблему -- дорабатывать ответ сервера.

READ ALSO
jQuery Дождаться выполнение 2-ух animate

jQuery Дождаться выполнение 2-ух animate

Нужно после окончания 2ух анимаций, сменить значение переменной

235
For-in с объектом window

For-in с объектом window

Есть массив объектов в глобальном пространстве имёнТребуется получить массив имён этих объектов, которые имеют определённое свойство

170
input type range c кастомным выводом цифр

input type range c кастомным выводом цифр

Здравствуйте, подскажите пожалуйста какие варианты возможны для реализации такой задачи? Есть ползунок (input type range) он управляет каруселью...

201
Замыкание в JS. Объясните 2 момента

Замыкание в JS. Объясните 2 момента

Здравствуйте! Разбираю тему замыкания в JS и не могу понять двух моментов в коде с MDN по темеОбъясните пожалуйста (вопросы после кода)

186