Ich bin im Bereich Javascript und Web-Programmierung im Allgemeinen sehr neu und brauche dazu etwas Hilfe. Ich habe eine HTTP-Anforderung, die ich durch Javascript senden muss, und muss die Ausgabe in einer Variablen speichern. Ich habe versucht, nur die Aufruf-URL zu verwenden:
https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015
Es wird jedoch ein Authentifizierungsfehler zurückgegeben, da ich meinen API-Schlüssel nicht gesendet habe und mir nicht gezeigt wird, wie dies nur in der URL geschieht. Der API-Schlüssel wird als Header und nicht als Parameter aufgeführt. Ich bin mir nicht sicher, was ich damit anfangen soll. Ich habe versucht, die XMLHttpRequest () -Klasse zu verwenden, aber ich bin mir nicht ganz sicher, ob ich genau verstehe, was es tut, und ich könnte nicht, dass es funktioniert.
Die eigentliche HTTP-Anfrage
GET https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015 HTTP/1.1
Host: api.fantasydata.net
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••
Ich muss nur herausfinden, wie diese Anforderung zusammen mit dem Schlüssel gesendet wird und wie das JSON-Dokument gespeichert wird, das als Variable in Javascript zurückgegeben wird.
EDIT: Das habe ich bisher:
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;
}
Vielen Dank!
Wenn der API-Schlüssel als Header aufgeführt ist, müssen Sie ihn höchstwahrscheinlich in der Option headers
Ihrer http-Anfrage festlegen. Normalerweise so etwas:
headers: {'Authorization': '[your API key]'}
Hier ist ein Beispiel von einem anderen Frage
$http({method: 'GET', url: '[the-target-url]', headers: {
'Authorization': '[your-api-key]'}
});
Edit: Ich habe gerade gesehen, dass Sie die Antwort in einer Variablen speichern möchten. In diesem Fall würde ich wahrscheinlich nur AJAX verwenden. Etwas wie das :
$.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
}
});
Ich habe dies aus dieser Frage und bin auf der Arbeit, also kann ich es momentan nicht testen, sieht aber solide aus
Edit 2: Ziemlich sicher, dass Sie diese Zeile verwenden können:
headers: {'Authorization': '[your API key]'},
anstelle der beforeSend
-Zeile in der ersten Bearbeitung. Dies kann für Sie einfacher sein
Mit Ihrem eigenen Code und einem leichten Wechsel ohne jQuery,
function testingAPI(){
var key = "8a1c6a354c884c658ff29a8636fd7c18";
var url = "https://api.fantasydata.net/nfl/v2/JSON/PlayerSeasonStats/2015";
console.log(httpGet(url,key));
}
function httpGet(url,key){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", url, false );
xmlHttp.setRequestHeader("Ocp-Apim-Subscription-Key",key);
xmlHttp.send(null);
return xmlHttp.responseText;
}
Danke dir