2012-08-31 7 views
5

Ich weiß, dass es eine fast doppelte Frage gibt, aber die Antwort ist überhaupt nicht zufriedenstellend.Ist es möglich, eine JSONP-Anfrage von HTTPS an HTTP zu stellen?

Ich muss Geocodierung mit dem Openstreetmap-Dienst, der über HTTP ausgeführt wird, tun.

Meine Website läuft über HTTPS.

Es scheint unmöglich zu sein JSONP-Anfrage von https zu http, Browser (Chrome) beschwert sich über unsichere Inhalte.

Irgendwelche Lösungen?

Antwort

5

Der Grund, dass der Browser über unsichere Inhalte beschwert ist, dass der Inhalt unsicher ist. Der gesamte Zweck mit einer sicheren Seite ist, dass alles davon sicher und vertrauenswürdig ist.

Sie können in Ihrer sicheren Site eine Proxy-Seite einrichten, die den unsicheren Inhalt anfordert. Dort sollten Sie den Inhalt überprüfen, bevor er an den Browser gesendet wird, sodass er tatsächlich sicher ist und nicht nur vorgibt, dass er sicher ist.

+0

verwenden, in einem realen Szenario, mein JQuery soll ein Popup in http öffnen (einzige Lösung, die ich denken kann für), die JSONP-Antwort erhalten und analysieren? – Cranio

+1

In einem echten Szenario sollten Sie Inhalte nicht über unverschlüsselte Kanäle auf einer sicheren Seite laden. Wenn Sie die Sicherheit nicht ernst nehmen, verwenden Sie einfach HTTP. – Tgr

+1

@Cranio: Nein, der Proxy, über den ich spreche, ist eine Seite auf dem Server. Sie stellen eine HTTPS-Anfrage an diese ein und stellen eine HTTP-Anfrage an den Dienst, überprüfen die Antwort und geben sie an den Browser zurück. – Guffa

3

Wenn Sie eine POST-Anforderung an einen externen Dienst senden möchten, der unter HTTP ausgeführt wird, während die erste Anforderung von HTTPS stammt, wird sie immer als unsicher angesehen. Es gibt, soweit ich weiß, keinen Weg.

Was Sie tun können, ist POST an Ihr Backend, das eine weitere POST-Anfrage an den Dienst sendet, der unter HTTP läuft. Von dort geben Sie einfach den vom HTTP-Dienst zurückgegebenen Wert zurück.

+0

Sie sollten ** nicht ** nur den Wert aus dem Service zurückgeben, sollten Sie es zuerst validieren. Der Proxy verwendet unsichere Daten und sendet diese an sichere Daten zurück. Daher muss er die Verantwortung übernehmen, um zu überprüfen, ob er tatsächlich sicher ist. – Guffa

+0

Am Ende möchten Sie wahrscheinlich die Daten zurückgeben, wenn es sicher ist. Sonst kann die Anfrage gar nicht erst ausgeführt werden. –

+0

Ich sagte, dass Sie es zuerst validieren sollten. Was denkst du kommt als nächstes? ;) – Guffa

3

Für wen es angeht, das ist, wie ich es selbst aussortiert.

1) mein Javascript-Code ruft eine AJAX-Seite auf meinem Server mit dem Parameter I

2) die AJAX Seite eine Anfrage über CURL unter Verwendung der Adresse

3) an den Dienst weiterleiten muss ich sterilisieren sie die Antwort und es in JSON

4) mit Javascript Callback-on-Erfolg ich die Daten So

+0

Ja, das sieht gut aus. Die Proxy-Seite muss die Antwort nicht unverändert zurückgeben. – Guffa

+0

@Guffa: Ja, es ist ein Paar Koordinaten, sehr einfach über PHP zu bereinigen. Danke fürs Helfen :) – Cranio

Verwandte Themen