Vbscript 经典ASP-无效的过程调用或参数:';左';

Vbscript 经典ASP-无效的过程调用或参数:';左';,vbscript,asp-classic,Vbscript,Asp Classic,最近将经典ASP应用程序从windows 2003移动到windows 2008 R2。经过大量的工作,除了一件事之外,所有的功能都是一样的。在“搜索结果”和“类别”页面上,我在尝试转到下一页结果时遇到以下错误: Microsoft VBScript runtime error '800a0005' Invalid procedure call or argument: 'Left' /incpages/SearchResults.asp, line 1372 与此相关的代码如下所示: <

最近将经典ASP应用程序从windows 2003移动到windows 2008 R2。经过大量的工作,除了一件事之外,所有的功能都是一样的。在“搜索结果”和“类别”页面上,我在尝试转到下一页结果时遇到以下错误:

Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Left'
/incpages/SearchResults.asp, line 1372
与此相关的代码如下所示:

<form method="POST" name="MainForm" id="MainForm" action="/SearchResults.asp">

Page <input type="text" value="<%=ThisPageNum%>" size="3" name="Page" id="Page_SR" maxlength="4"> of <%=TotalPagesNum%>

<% Dim pageURL
pageURL = Request.ServerVariables("HTTP_X_ORIGINAL_URL")
%>

<%If ((InStr(LCase(Request.ServerVariables("HTTP_X_ORIGINAL_URL")),"/searchresults.asp")) > 0) Then%>

<%If ThisPageNum <> TotalPagesNum Then %>
                        <%If (ThisPageNum = "1") Then %>
                            <input type="image" border="0" name="btnNextPage" src="<%=SEOImage(Config_ImagesFolder & "/buttons/btn_nextpage.gif")%>" onClick="document.getElementById('Page_SR').value=<%=(ThisPageNum + 1)%>">
                        <%Else%>
                            <a href="<%Response.Write((Left(pageURL,(Len(pageURL)-1))) & ThisPageNum + 1)%>"><img src="<%=SEOImage(Config_ImagesFolder & "/buttons/btn_nextpage.gif")%>" border="0" name="btnNextPage" /></a>
                        <%End If %>
<%End If %>
</form>

第页,共页
0)然后%>
因此,当我转到这里:/SearchResults.asp?cat=80&page=1时,结果显示得很好。如果我转到这里:/SearchResults.asp?cat=80&page=2或totalpagesum中的任何其他页面,我会得到该错误


我一直无法理解为什么它在切换后停止工作

只是预感到
pageURL
是空字符串,所以它在第二个参数
-1
上出错。第2页上的
pageURL
的值是多少?没错,第2页上的值是空的。该死所以Request.ServerVariables(“HTTP_X_ORIGINAL_URL”)甚至没有抓取URL,只需删除所有垃圾并对页码执行简单的if语句即可修复它。谢谢你的帮助!很高兴我的直觉是正确的…:)