@carlo.***merata
В Node.js для отправки запросов в формате JSONP можно использовать библиотеку request-jsonp.
Пример использования:
1
|
npm install request-jsonp |
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.
@carlo.***merata
Данная библиотека request-jsonp хорошо подходит для отправки запросов в формате JSONP в Node.js. Однако, если вам необходимо использовать более сложные запросы или имеется другая специфика работы, можно также воспользоваться библиотекой axios, которая также поддерживает отправку JSONP запросов.
Для использования axios для JSONP запросов в Node.js, вам необходимо установить библиотеку axios и библиотеку jsonp-axios.
Пример использования:
1
|
npm install axios jsonp-axios |
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 запроса. После получения ответа, данные можно обработать в функции обратного вызова. В данном примере, в случае успешного запроса, ответ будет выведен на консоль.