2013-01-15 2 views
5

Ich hosten eine Datei unter domain.com, die ein iframe enthält, deren Dokument auf s3.domain.com gehostet wird. Ich versuche, den Inhalt des iframe zuzugreifen, jedoch erhalte folgende Möglichkeiten:Versuch, auf iframe-Inhalte zuzugreifen (andere Subdomain); versuchte, die Einrichtung CORS

Unsafe JavaScript Versuch Rahmen Zugriff mit URL von Rahmen mit URL http://domain.com/. Domains, Protokolle und Ports müssen übereinstimmen.

Ich verstehe den Grund dafür. Ich habe zwei Arbeiten gefunden.

  1. Da ich beiden Dokumente besitze, kann ich die Domain-Eigenschaft Zugang zu ermöglichen, etwa so: document.domain = 'domain.com';
  2. Verwenden CORS Zugriff auf das Dokument zu ermöglichen, die in einem S3-Bucket gehostet wird

Ich würde es vorziehen, dies zu tun, habe aber Schwierigkeiten damit. Meine CORS-Konfigurationsdatei für den Eimer sieht derzeit wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>*</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
    </CORSRule> 
</CORSConfiguration> 

Dies ist immer noch, aber in dem Fehler führt. Ich bin mir sicher, dass ich etwas vermisse, bin mir aber nicht sicher was.

Jeder Rat würde geschätzt werden. Danke.

Antwort

2

Mit CORS Browsern wird in der Regel eine Preflight-Anfrage (OPTIONS Methode). Wahrscheinlich werden Sie alle Header erlauben müssen auch richtige Preflight Anfrage Handhabung gewährleisten:

<AllowedHeader>*</AllowedHeader> 

Siehe auch here.

+0

Ich werde es geben und aktualisieren mit dem Ergebnis. – onassar

+0

kein Glück. Hier sind Beispiel-Antwort-Header aus dem iframe'd-Inhalt, wenn es hilft: http://cl.ly/image/3C2n2v3t3G37 – onassar

+0

Es sieht so aus, als ob Sie überhaupt keine CORS-Header-Antworten bekommen. Es sollte mindestens einen Access-Control-Allow-Origin-Header geben. Sind Sie sicher, dass es in S3 richtig eingerichtet ist? – Carvellis

Verwandte Themen