2017-07-23 5 views
0

Ich habe dieses Problem ein paar Mal jetzt und ich denke, es gibt jemanden da draußen, der einen besseren Weg zur Behandlung von Api-Anrufe als ich weiß - insbesondere Header anfordern.Problembehandlung axios Anfragen

Oft, wenn ich meine API-Token über einen Anfrage-Header übergeben muss, tappte ich ständig das genaue Format, um meinen Schlüssel zu übergeben (es scheint, dass es kein universelles Format dafür gibt).

Zum Beispiel versuche ich gerade auf den vultr v1 api zuzugreifen. Die Dokumente geben ein Curl-Beispiel, wo API-Key: SOMEKEY übergeben werden muss, aber mein erster Versuch funktioniert selten, dann tappe ich nur ... Will er meinen Schlüssel in einem Schlüssel/Wert-Paar oder einer einzelnen Zeichenfolge in einem Array? Benutze ich es6 Objekte (ohne Anführungszeichen) oder nicht.

hier ist was ich meine:

// one method 
const opts = { 
    headers: { 
    API-Key: 'SOMEKEY' 
    } 
} 
// another 
const opts = { 
    'headers': { 
    'API-Key': 'SOMEKEY' 
    } 
} 
// another 
const opts = { 
    headers: [ 
    'API-Key: SOMEKEY' 
    ] 
} 

axios.get(url, opts).then(res => console.log(res.data)) 

, die der richtige Weg ist? Im curl Beispiel durch vultr gegeben es zeigt: curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/iso/list

ich auch in meinem Netzwerk-Inspektoren sehen, dass die Request-Header zeigen i noch meinen API-Schlüssel bin vorbei bin ich immer noch einen 403 (schlechter Schlüsselfehler) bekomme network inspector

Ich habe die Gültigkeit meines Schlüssels überprüft und das ist nicht das Problem. Meine Frage ist das: Wie finde ich das richtige Format für die Header? Gibt es eine bessere Methode zur Problembehandlung für diese Art von Problem? Jede Hilfe würde sehr geschätzt werden. Danke ya'll

UPDATE: Stellt sich heraus, dass sie Zugriffskontrolle basierend auf IPs haben. Ich hatte es bis jetzt nicht bemerkt. Sie blockierten meine Anfrage deswegen. Meine Frage steht jedoch noch. Gute Methoden, um richtige Formate zu finden? Gibt es ein korrektes Format?

Antwort

0

Eine Möglichkeit setzt Headers während axios Objekt zu erzeugen, wie folgt:

axios = axios.create({headers: {'API-Key': 'EXAMPLE'}}); 
axios.get(url, opts).then(res => console.log(res.data)) 

Oder

axios.get(url, {headers: {'API-Key': 'EXAMPLE'}}).then(res => console.log(res.data)) 
Verwandte Themen