找出JS-ASP中是否存在URL参数

时间:2010-10-11 18:30:06

标签: javascript asp-classic jscript

我正在编辑其他人的代码,用服务器端的JS编写的ASP,并遇到了一个可能有一个非常简单的解决方案的问题。

我正在从这样的URL参数中输出一些代码:

<%=Request.QueryString("param")%>

问题是,如果param不存在,我需要做其他事情。所以我试过了:

<% 
  var param = Request.QueryString("param");
  if (!param) { param = "Some Default Value"; }
%>
<%=param%>

问题在于if似乎永远不会评估为true,即使缺少URL参数也是如此。我猜测!image条件在这里不起作用。我的测试条件应该是什么?

(请放弃关于逃避URL参数以防止XSS的严厉警告。)

3 个答案:

答案 0 :(得分:4)

检查查询字符串参数是否存在的正确方法是使用Count属性:

<% 
  var param = Request.QueryString("param");
  if (param.Count === 0) { param = "Some Default Value"; }
%>
<%=param%>

根据Request.QueryString的文档,

  

Request.QueryString( parameter )的值是所有的数组   QUERY_STRING中出现的参数值。

这可能是简单的if (!param)检查不起作用的原因。

答案 1 :(得分:2)

这就是我的工作。

function qs(name) {
    var v = Request.QueryString(name),
        v2 = "x" + v + "x";
    if ((v2=="xundefinedx") && (v != "undefined")) {
        return null;
    }
    return v + ''; // force string
}

答案 2 :(得分:-1)

在JSP中,您必须使用getParameter而不是QueryString

JSP中的代码是

<% 
  String param = request.getParameter("param");
  if (param.length() == 0) { param = "Some Default Value"; }
%>