2010-11-19 6 views
0

OK so Person auf http://foobar.com Uploads zu http://upload.foobar.com/cgi-bin/upload.cgi"JQ ist nicht definiert", obwohl jquery enthalten ist

upload.cgi kehrt:

<script language="javascript" type="text/javascript" src="http://upload.foobar.com/jquery-1.3.2.min.js"> 
</script> 
<script language="javascript" type="text/javascript" src="http://upload.foobar.com/uploader.js"> 
</script> 
<script language="javascript" type="text/javascript"> 
UploaderRemote.redirectAfterUpload('http://foobar.com/proxyajax.php?url=http://upload.foobar.com/finished.php&upload=a53d7d18d879b432a2', 1); 
</script> 

Die Informationen aus upload.cgi korrekt abgerufen, Problem ist, Die crossdomain-Einschränkung gilt weiterhin.

Ich versuche, nur die js-Funktion zu kopieren, die auf die Subdomäne beschränkt ist, so dass sie von der Hauptdomäne getrennt ist.

Nach dem Importieren von jquery und uploader.js aus der Subdomäne, versuche ich die Funktion auszuführen, die eingeschränkt wurde. (Ich habe "Eltern" vor UploaderRemote.redirectAfterUpload weggelassen, nicht sicher, ob es dort bleiben muss).

Problem ist, Javascript Konsole sagt, dass JQ nicht in uploader.js von upload.foobar.com definiert ist, gibt es eine Möglichkeit, es explizit zu definieren? Ich habe versucht, jquery direkt vor uploader.js, aber kein Glück.

HINWEIS: http://foobar.com hat seine eigene jquery & uploader.js, aber wie ich schon sagte, die Javascript (parent.Uploader.redirectAfterUpload) von http://uploader.foobar.com/cgi-bin/upload.cgi packte werden darf nicht werden, um die Funktionen von uploader.js auf http://foobar.com zugreifen

+0

Können Sie uns zusätzliche Informationen über das von Ihnen gesuchte Verhalten geben? Was machen Sie mit dem von upload.cgi zurückgegebenen Code? Injizieren Sie es in Ihr DOM, zeigen Sie es in einem iframe usw. an? – charisis

+0

ich bin ein JavaScript-Noob. Ich glaube, es wurde in das DOM injiziert, ziemlich sicher, dass es nicht in einen Iframe eingefügt wurde, sonst hätte es mir keinen Crossdomainkonflikt gegeben – jiexi

Antwort

1

Versuchen Sie folgendes: Haben upload.cgi nur den Javascript-Code zurückgeben Sie

ausführen möchten zB

redirectAfterUpload('http://upload.foobar.com/finished.php&upload=a53d7d18d879b432a2', 1); 

Wenn Sie dies abrufen, nur eval() es. Sie haben kein Beispiel dafür angegeben, wie Sie upload.cgi aufrufen oder wie Sie mit der Antwort umgehen, damit ich keinen korrekten Code eingeben kann.

Übrigens, wenn upload.cgi immer umleiten soll, könnte es nur die Ziel-URL zurückgeben.

Wenn Sie dieses weiter untersuchen möchten, suchen Sie nach JSONP-Callbacks. Das ist ziemlich die gleiche Technik.

Verwandte Themen