Ich versuche, die zoom.us-API zu verwenden, die von der Site bereitgestellt wird. Sie geben mir den cURL-Befehl einen neuen Benutzer zu erstellen:Konvertieren eines CURL-Befehls in AJAX
curl --data 'api_key=your_api_key&api_secret=your_api_secret&[email protected]&type=1&first_name=John&last_name=Smith' https://api.zoom.us/v1/user/create
ich AJAX übersetzt:
$.ajax({
url: 'https://api.zoom.us/v1/user/create',
type: "POST",
cache: true,
async: false,
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify({ 'api_key': 'key', 'api_secret': 'secret', 'email': '[email protected]', 'first_name': 'John', 'last_name': 'Smith' }),
success: function (res) {
console.log(res);
},
error: function (err) {
console.error(err);
}
});
(Hinweis: die Variablen für ‚api_key‘ und ‚api_secret‘ sind nur Platzhalter in der oben Beispiel: Ich habe meinen eigenen Schlüssel und mein Geheimnis, das ich verwende, wenn ich versuche, diesen API-Aufruf zu machen)
Dieser Code funktioniert jedoch nicht für mich. Ich erhalte die folgende Fehler 403:
XMLHttpRequest cannot load https://api.zoom.us/v1/user/create.
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://mywebsite.com' is therefore not allowed access. The response had HTTP status code 403.
Meine Frage ist: Was mache ich falsch? Gibt es irgendetwas, das ich falsch übersetzt habe? Ich weiß auch, dass ähnliche Fragen schon vorher gestellt wurden (so entstand mein übersetzter Code), aber sie konnten mein Problem nicht lösen.
Hier ist die zoom.us Dokumentation, falls es hilfreich ist: https://support.zoom.us/hc/en-us/articles/201363033-REST-User-API
ETA: nach apokryfos Kommentar, hier ist meine aktualisierte Code:
$.ajax({
url: 'https://api.zoom.us/v1/user/create',
cache: true,
async: false,
data: { 'api_key': 'key', 'api_secret': 'secret', 'email': e, 'first_name': 'john', 'last_name': 'smith' },
success: function (res) {
console.log(res);
},
error: function (err) {
console.error(err);
}
});
Erzeugt einen neuen Fehler 405:
XMLHttpRequest cannot load api.zoom.us/v1/user/create?api_key=key&api_secret =secret&email=test%40email.com&first_name=Juan&last_name=Gonzalez.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'website.com'; is therefore not allowed access.
POST-Daten und JSON-Daten sind nicht das Gleiche. Sie sollten das Objekt passieren, ohne es zu straffen. Ändern Sie auch nicht den Inhaltstyp. – apokryfos
Häufiger bekannt als CORS (Cross-Origin-Ressourcenfreigabe). Ich würde denken, dass Sie Dinge falsch machen, wenn Sie api Schlüssel/Geheimnisse auf jedem Client-Rechner setzen. –
Dank @apokryfos, die meine 403 Fehler behoben, aber jetzt habe ich einen neuen Fehler 405: XMLHttpRequest kann nicht laden https://api.zoom.us/v1/user/create?api_key=key&api_secret = secret & email = test% 40email.com & first_name = Juan & last_name = Gonzalez. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Herkunft 'http://website.com' ist daher nicht erlaubt. Die Antwort hatte den HTTP-Statuscode 405. – Juan