2016-09-15 2 views
1

Ich habe eine benutzerdefinierte Datenbank erstellt, die ich mit einigen meiner UP3-Daten füllen möchte. Ich habe erfolgreich die JSON-Antwort mit meinem Bearer-Token authentifiziert und erhalten. Von hier bin ich irgendwie verloren."Keine 'Access-Control-Allow-Origin'-Kopfzeile ist auf der angeforderten Ressource vorhanden" Fehler beim Senden der Anfrage an Jawbone UP API

Aus den Unterlagen, ich eine GET-Anfrage an

https://jawbone.com/nudge/api/v.1.1/users/@me 

Jedes Mal, wenn ich, erhalte ich tun senden müssen:

Nein "Access-Control-Allow-Origin-Header vorhanden sind auf die angeforderte Ressource

ich habe hinzugefügt:

header('Access-Control-Allow-Origin: http://example.com'); 

(Ersetzen von example.com durch meine Domain)

auf die Seite, die die GET-Anfrage sendet. Irgendwelche Gedanken?

+0

Willkommen bei Stack Overflow. Ich habe Ihre Anfrage bearbeitet, um eine Anfrage für eine externe Ressource zu entfernen, da dies [off-topic] (http://stackoverflow.com/help/on-topic) ist und wahrscheinlich zu downvotes führt und Ihre Frage wird geschlossen . Sie können jedoch Ihre Frage immer noch verbessern (und somit mehr/bessere Antworten gewinnen), wenn Sie den von Ihnen verwendeten Code [bearbeiten]. – HPierce

+0

Sie erhalten einen Fehler CORS (http://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work). Dieser Header muss auf dem Jawbone-Server vorhanden sein, was der Fall ist. Sie sollten also keinen solchen Fehler erhalten. Können Sie den Code einschließen, der die GET-Anforderung ausgibt? Legen Sie den Berechtigungsheader fest? – RAY

+1

Installieren Sie die Access-Control-Allow-Origin-Erweiterung in Ihrem Browser, und Sie können auf den lokalen Server/ –

Antwort

0

Das Jawbone alle Endpunkte der Header CORS auf

Access-Control-Allow-Origin: *

Dies wird jedoch noch nicht Cross-Site-Anfragen von localhost erlauben (dank @TirthrajBarot für die Erklärung in den Kommentaren), so dass Sie Deaktivieren Sie diese Überprüfung in Chrome mit etwas wie der Access-Control-Allow-Origin extension.

0

Nachdem ich den Benutzer und die Berechtigungen authentifiziert habe, werde ich auf eine andere Seite weitergeleitet, um den Authentifizierungscode zu überprüfen und das Zugriffstoken zu erhalten. Von dort gehe ich auf eine andere Seite, um die GET-Anfrage für die Daten zu senden. Hier ist der Code, der funktioniert:

$url = "https://jawbone.com/nudge/api/v.1.1/users/@me/sleeps?" . $sleepDate; 

    $options = array(
     'http'=>array(
     'method'=>"GET", 
     'header'=>"Accept: application/json\r\n" . 
        "Authorization: Bearer " . $accessToken . "\r\n" . 
        "Host: {my website}" 
    ) 
    ); 

    $context = stream_context_create($options); 
    $sleepData = @file_get_contents($url, false, $context); 

Die Daten werden zurückgegeben, entschlüsselt und verarbeitet. Das Ergebnis wird in ein Textfeld in einem Formular verschoben, das der Benutzer bei Bedarf bearbeiten kann. Es gibt auch eine Schaltfläche zum Eingeben der Daten in die Datenbank (zusammen mit einer Reihe versteckter Formularfelder, die andere relevante Details eingeben).

Verwandte Themen