2015-12-29 13 views
9

Ich bekomme folgenden Fehler beim Zugriff auf Google Drive Picker, aber der Picker zeigt ordnungsgemäß ohne Fehler.Google Drive Picker Fehler

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://docs.google.com') does not match the recipient window's origin ('http://localhost'). 

Invalid 'X-Frame-Options' header encountered when loading 'https://docs.google.com/picker?protocol=gadgets&origin=http%3A%2F%2Flocalho…%3Atrue%7D))&rpctoken=e2x1eop3h1rr&rpcService=2qeo0ns6gu13&thirdParty=true': 'ALLOW-FROM http://localhost' is not a recognized directive. The header will be ignored. 

PSB der Screenshot von meinem Entwickler-Konsole

http://screencloud.net/v/6431

Auch habe ich auf diese Frage verwiesen Google Drive Picker - Developer Key is Invalid Error aber ich denke, es gibt einige Änderungen in Google api ist so dieses Ding nicht funktioniert.

-Code-Schnipsel -

var picker = new google.picker.PickerBuilder() 
          .setLocale(lkGoogleSettings.locale) 
          .setOAuthToken(accessToken) 
          .setCallback(pickerResponse) 
          .setOrigin(lkGoogleSettings.origin); 

Dank

+0

'http: // localhost 'ist keine anerkannte Richtlinie'. Vielleicht erwartet Google API eine Portnummer, wie in 'http: // localhost: 80'? – remdevtec

+3

FWIW das passiert nur in Chrome. Das zweite Problem wird als Fehler gemeldet, den sie nicht beheben möchten. https://code.google.com/p/chromium/issues/detail?id=511521 – Amber

+0

Ich denke, google Dateiauswahl funktioniert nur in Live-Server, müssen Sie es hosten –

Antwort

2

Da einige der Kommentatoren erwähnt haben, die X-Frame-Option Fehler ist bekannt, Fehler in Chrome. Sie können eine lange Diskussion darüber sehen here.

Jetzt für das echte Problem: origin matching. Google Drive spielt nicht gut mit localhost ab, mit oder ohne Port, unabhängig davon, ob Sie es Ihren Ursprüngen in Ihren Berechtigungen für Ihre Client-ID hinzufügen.

Es gibt jedoch Hoffnung. Wenn Sie eine Domain in Ihrer Hostdatei so einrichten, dass sie auf localhost verweist, können Sie die Domain Ihrer Herkunft in Ihrer Google App-Konsole hinzufügen, und alles funktioniert wie erwartet!

Ich mache das ständig, um meine Anwendungen zu testen. Zum Beispiel:

  1. hinzufügen dev.mysite.com zu Ihrem hostfile (/ etc/hosts in Mac).
  2. Replizieren Sie die Domain in Ihren Berechtigungen für Ihre Picker-App in der Google App Console, und Sie sollten gut gehen.
  3. Starten Sie Ihre Website mit dev.mysite.com:80 * und Drive Picker sollte jetzt ordnungsgemäß funktionieren.

* Hinweis: Sie auf Port dienen muss 80. Google gar nicht mit Ports schön spielen, so dass, wenn Sie auf Ihre Website gehen, muss die Adresse sein dev.mysite.com ohne Anschluss.

+0

Irgendein Grund für die Abstimmung unten? Ich glaube nicht, dass eine kosmetische Bearbeitung ausreichen sollte, um eine richtige Antwort mit einer tatsächlichen Lösung abzustimmen. – silverelizard