asp,关于response.Redirect的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:25:30
<script language="javascript" type="text/javascript" src="http://js.users.51.la/1778613.js"></script>
<%
dim filename
filename=Request.QueryString("fn")
response.Redirect(filename)
%>
上面是我些的一个下载程序的链接,里面的js代码是用于统计点击数的,但是我发现实际上它根本就没起作用,比如我用的这句:
http://www.ruiyuan-power.cn/sfw/?fn=QQGradeCalc.rar
本来“1778613.js”这个文件应该执行的,但是实际上我查看了下它根本就没执行。
如果它放在调准语句的后面还可以理解,现在我是放在前面啊,难道非要等到那个js文件执行完才可以?
请高手帮忙!小弟不胜感激!!
binjly,你的代码我试过了,提示说找不到那个js文件,那个js文件是外部的啊,我把它下载下来使用?可是 51la 上面说不让下载下来使用,因为那个里面的内容可能会改变的,到底该怎么办啊?

错误类型:
Active Server Pages, ASP 0126 (0x80004005)
找不到包含文件 'http://js.users.51.la/177861

呵呵,我完全明白你的意思。你这个是典型的客户端脚本与服务端脚本概念混淆
ASP部分是在服务器上执行的,而你的JS并没有特别声明为服务端运行,所以这个JS只会在客户端执行。
因为你ASP里做了response.Redirect,所以,这个JS还没来得及发送到客户端,就已经“作废”了。
解决办法:
把JS声明为服务端运行。
前提条件:
你的JS里没有包含只能在客户端运行的代码。
具体操作:
在JS标签里加入 runat="server"就可以了。如下:
<script language="javascript" type="text/javascript" src="
http://js.users.51.la/1778613.js" runat="server"></script>

补充:
如果那个JS不是在你自己的空间上,那就涉及到跨域问题。这样子的话,那个JS就只能在客户端运行了。
那你就只能改一下你的代码,不要用response.Redirect重指向,用JS的window.location.href来重指向