分类:
2009-04-26 10:10:58
关于在ASP文件中使用encodeURI和 decodeURI 遇到的“类型不匹配”问题。
TS,2009-04-26
案例:在asp文件中写道:
<%
a = decodeURI("3455")
response.Write(a)
response.End()
%>
运行,出现错误:
Microsoft VBScript 运行时错误 错误 '800a000d'
类型不匹配: 'decodeURI'
/ajax/090425/xmlRecv.asp,行 2
一下把俺搞懵了。
其实,这个“类型不匹配”指的并不是decodeURI参数的类型不对,而是指找不到或没有decodeURI这个关键字。比如把decodeURI换成hahaha,同样回报错:类型不匹配:’hahaha’。这里是首先要注意的,不要被它的提示错误所误导。
然后,难道vbscript里面没有decodeURI?
但是联想到前段时间做的“初夏的风 聊天室”应用,里面在asp脚本中用到了decodeURI这个函数。翻开原来的代码一看,原来是文件的头部多了一个
于是想起来了,上次就是怕ASP中没有decodeURI所以才写的这么一段JavaScript。
runat=”server”是因为:1.不想往客户端多发送这一段数据;2.这个工作必须在服务器端做。
不过后来没有用到,所以又把里面的东西注释掉了,但是壳子留下了。
好,现在就在我的上述出错的ASP文件的头部加上
心想,这下该成了吧。
好,一运行,还是一样的错误。我惊呆了。比较一下和那个正确的ASP文件,原来中间少了一行注释。
难道一行注释也会起作用?
于是我又在这个之间加了一句注释:
//sakfjaskdljfa
注释的内容是胡乱写的。
于是再一运行,成了!!
这个事情太诡异了。鉴于网上还没找到这样的文章,因此写篇文章总结一下,提醒一下自己,也希望能够帮助大家少耽误些时间在这个上面。