Ho bisogno di costruire un progetto per entrare in un bootcamp JS a cui mi sto candidando. Mi dicono che posso usare solo JS vanilla, in particolare che i framework e Jquery non sono consentiti. Fino a questo punto, quando ho voluto recuperare un file JSON da un api direi
$.getJSON(url, functionToPassJsonFileTo)
per le chiamate JSON e
$.getJSON(url + "&callback?", functionToPassJsonPFileTo)
per JSONP chiama. Ho appena iniziato a programmare questo mese, quindi tieni presente che non conosco la differenza tra JSON o JSONP o il modo in cui si riferiscono a questa cosa chiamata ajax. Per favore, spiega come otterrei ciò che le 2 linee sopra raggiungono in Vanilla Javascript. Grazie.
Quindi, per chiarire,
function jsonp(uri){
return new Promise(function(resolve, reject){
var id = '_' + Math.round(10000 * Math.random())
var callbackName = 'jsonp_callback_' + id
window[callbackName] = function(data){
delete window[callbackName]
var ele = document.getElementById(id)
ele.parentNode.removeChild(ele)
resolve(data)
}
var src = uri + '&callback=' + callbackName
var script = document.createElement('script')
script.src = src
script.id = id
script.addEventListener('error', reject)
(document.getElementsByTagName('head')[0] || document.body || document.documentElement).appendChild(script)
})
}
sarebbe l'equivalente JSONP?
Questo è l'equivalente di '$ .getJSON()', se non è chiaro. Ottenere JSONP è significativamente diverso. – Pointy
Questo link è una risorsa molto utile, ecco un confronto riga per riga: http://youmightnotneedjquery.com/#json –
Ma non jquery 1.x gestione IE8 ??? –