2015-12-16 27 views
7

Sono molto nuovo di javascript e della programmazione Web in generale e ho bisogno di aiuto con questo. Ho una richiesta HTTP che ho bisogno di inviare tramite javascript e ho bisogno di memorizzare l'output in una variabile. Ho provato ad utilizzare solo l'url di chiamata:Come inviare una richiesta HTTP con un parametro di intestazione?

https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015 

ma restituisce un errore di autenticazione perché non ho inviato la mia chiave API e non mi mostri come farlo solo nell'URL. La chiave API è elencata come intestazione e non come parametro e non sono sicuro di cosa fare. Ho provato a utilizzare la classe XMLHttpRequest() ma non sono abbastanza sicuro di aver capito esattamente cosa fa e non ho potuto farlo funzionare.

Il HTTP di richiesta effettivi

GET https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015 HTTP/1.1 
Host: api.fantasydata.net 
Ocp-Apim-Subscription-Key: •••••••••••••••••••••••••••••••• 

Ho solo bisogno di capire come inviare tale richiesta insieme con la chiave e come conservare il doc JSON restituisce come una variabile in javascript.

EDIT: Questo è quello che ho finora:

function testingAPI(){ 
var key = "8a1c6a354c884c658ff29a8636fd7c18"; 
httpGet("https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015",key ); 
alert(xmlHttp.responseText); 
var x = 0; 
} 

function httpGet(theUrl,key) 
{ 
var xmlHttp = new XMLHttpRequest(); 

xmlHttp.open("GET", theUrl, false); // false for synchronous request 
xmlHttp.setRequestHeader("Ocp-Apim-Subscription-Key",key); 
xmlHttp.send(null); 
return xmlHttp.responseText; 
} 

Grazie!

+0

Dove viene inviata la richiesta del codice? – hindmost

+0

Siamo spiacenti, l'ho appena aggiunto! –

risposta

2

Se la chiave API è elencata come intestazione, è più che probabile che sia necessario impostarla nell'opzione headers della propria richiesta http. Normalmente qualcosa di simile:

headers: {'Authorization': '[your API key]'} 

Ecco un esempio di un altro Question

$http({method: 'GET', url: '[the-target-url]', headers: { 
    'Authorization': '[your-api-key]'} 
}); 

Edit: appena visto si voleva conservare la risposta in una variabile. In questo caso probabilmente userò semplicemente AJAX. Qualcosa di simile a questo:

$.ajax({ 
    type : "GET", 
    url : "[the-target-url]", 
    beforeSend: function(xhr){xhr.setRequestHeader('Authorization', '[your-api-key]');}, 
    success : function(result) { 
     //set your variable to the result 
    }, 
    error : function(result) { 
    //handle the error 
    } 
}); 

ho ricevuto questo da this question e io sono al lavoro, quindi non posso provarlo al momento, ma sembra solido

Edit 2: abbastanza sicuro che dovrebbe essere in grado per utilizzare questa riga:

headers: {'Authorization': '[your API key]'}, 

anziché la riga beforeSend nella prima modifica. Questo potrebbe essere più semplice per te

+0

Quindi ha senso, ma come dovrei incorporare questo nel mio file javascript? –

+0

Stavo modificando la mia risposta come hai commentato, spero che possa chiarire alcune cose. Puoi semplicemente inserire la richiesta AJAX ovunque ti serva per ottenere le informazioni nel tuo file JS. Personalmente mi piace averli nelle loro proprie funzioni –

+0

Ci proverò ora! Grazie mille –

Problemi correlati