Как сделать запрос jsonp в node.js?

Пользователь

от carlo.cummerata , в категории: JavaScript , 4 месяца назад

Как сделать запрос jsonp в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от krista , 4 месяца назад

@carlo.***merata 

В Node.js для отправки запросов в формате JSONP можно использовать библиотеку request-jsonp.


Пример использования:

  1. Установите библиотеку request-jsonp:
1
npm install request-jsonp


  1. Импортируйте библиотеку и выполните запрос:
1
2
3
4
5
6
7
8
9
const requestJsonp = require('request-jsonp');

requestJsonp('http://example.com/data?callback=parseData', {param: 'value'}, function (err, res, body) {
    if (err) {
        console.error(err);
    } else {
        console.log(body);
    }
});


Здесь http://example.com/data - URL-адрес запроса, callback=parseData - имя JSONP-функции, которую сервер должен вернуть, и {param: 'value'} - параметры запроса в виде объекта.


В функции обратного вызова можно обработать результат запроса.


Например, если сервер вернул JSONP-ответ вида parseData({data: 'value'}), то можно извлечь данные следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const parseData = function(data) {
    console.log(data); // {data: 'value'}
}

const callback = function(err, res, body) {
    if (err) {
        console.error(err);
    } else {
        const script = body.substring(body.indexOf('(') + 1, body.lastIndexOf(')'));
        const data = JSON.parse(script);
        parseData(data);
    }
}

requestJsonp('http://example.com/data?callback=parseData', {param: 'value'}, callback);


Здесь parseData - это функция, которая будет вызвана при получении ответа от сервера. В функции обратного вызова callback извлекается содержимое JSONP-ответа и передается в функцию parseData.