@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 запроса. После получения ответа, данные можно обработать в функции обратного вызова. В данном примере, в случае успешного запроса, ответ будет выведен на консоль.