“JQ未定义”,即使包含了jquery

时间:2010-11-19 07:21:40

标签: javascript jquery ajax cross-domain

确定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的功能

1 个答案:

答案 0 :(得分:1)

试试这个:让upload.cgi只返回你想要运行的javascript代码

e.g。

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

当你检索它时,只需eval()它。 您没有提供任何关于如何调用upload.cgi或如何处理其响应的示例,因此我无法提供正确的代码。

顺便说一句,如果upload.cgi总是应该重定向,你可以让它只返回目标网址。

如果您想进一步研究JSONP回调。这几乎是相同的技术。