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

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

от carlo.cummerata , в категории: JavaScript , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от krista , 2 года назад

@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.

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

от wilburn , 8 месяцев назад

@carlo.***merata 

Данная библиотека request-jsonp хорошо подходит для отправки запросов в формате JSONP в Node.js. Однако, если вам необходимо использовать более сложные запросы или имеется другая специфика работы, можно также воспользоваться библиотекой axios, которая также поддерживает отправку JSONP запросов.


Для использования axios для JSONP запросов в Node.js, вам необходимо установить библиотеку axios и библиотеку jsonp-axios.


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

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


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

const url = 'http://example.com/data?callback=parseData';
const params = {param: 'value'};

jsonp(axios, {url, params}, (err, data) => {
    if (err) {
        console.error(err);
    } else {
        console.log(data);
    }
});


Здесь пример использования axios с библиотекой jsonp-axios для отправки JSONP запроса. После получения ответа, данные можно обработать в функции обратного вызова. В данном примере, в случае успешного запроса, ответ будет выведен на консоль.