确定http://foobar.com上的此人上传到http://upload.foobar.com/cgi-bin/upload.cgi
upload.cgi返回:
<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>
正确检索upload.cgi中的信息,问题是仍然适用跨域限制。
我试图只复制被限制在子域中的js函数,以便它与主域分开。
从子域导入jquery和uploader.js之后,我尝试运行受限制的函数。 (我在UploaderRemote.redirectAfterUpload之前省略了“parent。”,不确定是否需要留在那里)。
问题是,javascript控制台说来自upload.foobar.com的uploader.js中没有定义JQ,有没有办法明确定义它?我尝试在uploader.js之前加入jquery,但没有运气。
注意:http://foobar.com有自己的jquery&amp; uploader.js,但就像我之前说的那样,从http://uploader.foobar.com/cgi-bin/upload.cgi抓取的javascript(parent.Uploader.redirectAfterUpload)不允许访问http://foobar.com上的uploader.js的功能
答案 0 :(得分:1)
试试这个:让upload.cgi只返回你想要运行的javascript代码
e.g。
redirectAfterUpload('http://upload.foobar.com/finished.php&upload=a53d7d18d879b432a2', 1);
当你检索它时,只需eval()它。 您没有提供任何关于如何调用upload.cgi或如何处理其响应的示例,因此我无法提供正确的代码。
顺便说一句,如果upload.cgi总是应该重定向,你可以让它只返回目标网址。
如果您想进一步研究JSONP回调。这几乎是相同的技术。