127 votes

Comment faire une requête JSONP à partir de Javascript sans JQuery ?

Puis-je effectuer une requête JSONP inter-domaine en JavaScript sans utiliser jQuery ou une autre bibliothèque externe ? Je voudrais utiliser JavaScript lui-même, puis analyser les données et en faire un objet pour pouvoir les utiliser. Dois-je utiliser une bibliothèque externe ? Si non, comment puis-je le faire ?

0 votes

0voto

Si vous utilisez ES6 avec NPM, vous pouvez essayer le module node "fetch-jsonp". L'API Fetch fournit un support pour faire un appel JsonP comme un appel XHR normal.

Prérequis : vous devez utiliser isomorphic-fetch module de nœud dans votre pile.

0voto

just_user Points 1446

Je colle juste une version ES6 de la belle réponse de sobstel :

send(someUrl + 'error?d=' + encodeURI(JSON.stringify(json)) + '&callback=c', 'c', 5)
    .then((json) => console.log(json))
    .catch((err) => console.log(err))

function send(url, callback, timeout) {
    return new Promise((resolve, reject) => {
        let script = document.createElement('script')
        let timeout_trigger = window.setTimeout(() => {
            window[callback] = () => {}
            script.parentNode.removeChild(script)
            reject('No response')
        }, timeout * 1000)

        window[callback] = (data) => {
            window.clearTimeout(timeout_trigger)
            script.parentNode.removeChild(script)
            resolve(data)
        }

        script.type = 'text/javascript'
        script.async = true
        script.src = url

        document.getElementsByTagName('head')[0].appendChild(script)
    })
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X