Ich habe den Rest der Bibliothek voll arbeiten lassen, nur versucht, api-Schlüssel zu generieren, und er wirft eine 403-Verboten-Anweisung, wenn er über Ajax ausgeführt wird.
({"status":false,"error":"Invalid API Key."})
Ich habe es unter REST_Controller auf die _remap-Funktion zurückverfolgt .. fast so, als würde ich die URL falsch aufrufen?
Workflow: user visits site1.com -> registers for account -> generates api key for their domain -> key recorded in db -> key displayed
Das folgende Formular würde auf site1.com sein, nachdem sie sich für ein Konto registriert haben, das sie auf "generate key" klicken würden.
Ajax-Aufruf:
%Vor%REST-SERVER auf GitHub: Ссылка
Sehen Sie sich speziell key.php unter application/controllers/api/key.php
Snippet der key.php-Datei, die sich auf diesen Prozess beziehen sollte:
%Vor%Antwort- / Anforderungsheader
%Vor%Ich habe herausgefunden, dass die 403 verboten war, weil ich keinen API-Schlüssel zur Verfügung gestellt habe, um Schlüssel zu generieren.
Etwas abwegig, da Phils Dokumentation nicht besagt, dass ein vorhandener API-Schlüssel erforderlich ist, bevor Sie Schlüssel generieren können.
Ich habe einfach einen falschen Schlüssel in der Tabelle in der Datenbank erstellt und beim Aufruf von / key / index? X-API-KEY = boguskey
darauf verwiesenIch habe das Problem der Erzeugung des api-Schlüssels gelöst. Ich benutze den REST-API-Server von Phil Sturgeon. Rufen Sie den Schlüssel-Controller mit einem Ajax-Aufruf als solchen an:
%Vor%Innerhalb der Schlüsselsteuerung: Suche nach der Funktion _generate_key () und prüfe nach $ this- & gt; load- & gt; helper ('security') ;. der Sicherheitshelfer muss für die Arbeit von do_hash geladen werden, andernfalls wird ein interner Fehler von 500 Servern angezeigt.
%Vor%Sie können auch Ссылка in der Adressleiste Ihres Browsers aufrufen, indem Sie eine kleine Änderung vornehmen Ihr Schlüsselcontroller Sie können den Funktionsnamen index_put durch index_get ersetzen.
Danke
Wenn Sie dies von einer anderen Domäne aus aufrufen, treten möglicherweise einige XSS-Probleme auf. Sie müssen es möglicherweise von Ihrem eigenen Server ausführen und die Funktion von seiner eigenen Domäne aufrufen oder möglicherweise die JSONP-Funktion verwenden.
UPDATE: Können Sie die Transaktion in Firebug mit der Registerkarte NET sehen? Bekommst du JSON zurück? Manchmal müssen Sie Callback =? zur URL-Anfrage: Ссылка ?
Update2: Können Sie die Seite im Browser anzeigen: (http://dev.mapitusa.com/api/key) Wenn Sie denselben Fehler erhalten, sollten Sie versuchen, der Site 777 (vollständige Lese- / Schreibrechte) zu erteilen.
Das klingt nach einem Browser-Problem. Vielleicht eine falsche Implementierung von PUT im XMLHttpRequest-Stack.
Ich würde versuchen, es schnell zu POST zu konvertieren, nur um zu sehen, ob es funktioniert. Es könnte besser sein, es als POST nur aus Kompatibilitätsgründen zu lassen.
Tags und Links php ajax rest codeigniter