2017-04-02 3 views
-1

Hey Leute, ich bin verpflichtet, auf die Web-API für den MTA zuzugreifen. Ich habe den Schlüssel, aber ich kann den Anruf nicht tätigen, da ich nicht weiß, wie man den Schlüssel richtig übergibt. Ich habe meinen echten Schlüssel durch den String "This is my key" im folgenden Codebeispiel ersetzt.Wie wird ein Schlüssel mit einem XMLHttpRequest gesendet, wenn versucht wird, auf eine API zuzugreifen?

Code

var myRequest = new XMLHttpRequest(); 
    myRequest.open('GET','http://bustime.mta.info/api/siri/vehicle-monitoring.json', 'This is my key'); 
    myRequest.onload = function(){ 



var data = JSON.parse(myRequest.responseText); 
console.log(data[0].comments); 


}; 
myRequest.send(); 

Fehler

XMLHttpRequest cannot load http://bustime.mta.info/api/siri/vehicle-monitoring.json. Redirect from 'http://bustime.mta.info/api/siri/vehicle-monitoring.json' to 'http://api.prod.obanyc.com/api/siri/vehicle-monitoring.json' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 
+0

"Ich weiß nicht, wie man den Schlüssel richtig weitergibt" - Es hängt davon ab, wie die API erwartet, dass der Schlüssel präsentiert wird. – Quentin

Antwort

1

As explained in the documentation muss die API-Schlüssel als Parameter GET key, z.B. genannt weitergegeben

http://bustime.mta.info/api/siri/vehicle-monitoring.json?key=<your key>… 

Die API, auf die Sie zugreifen möchten, hat den domänenübergreifenden Zugriff jedoch nicht aktiviert. Es kann nicht direkt von einer Javascript-Webanwendung verwendet werden - der Schlüssel wird keinen Unterschied machen.

Verwandte Themen