我试图在经典ASP网站中使用JavaScript作为脚本语言。 我遇到了几个错误。许多JS对象不起作用,也有一些常量。有人可以解释使用JavaScript作为服务器端脚本语言的含义。这是我第一次尝试使用JavaScript的asp网站,所以我提供了这段代码。
<%
var user = Request.QueryString("name");
Response.Cookies("thisUser") = user;
var expdate = new Date(Date.now().setMinutes(Date.now().getMinutes()+5));
Response.Cookies("thisUser").Expires = expdate.toString();
function _greet(name) {
Response.Write("<p>And also you... <b>" + name + "</b> ...I guess...</p>");
}
%>
<!doctype html>
<html>
<head><title>ASP</title></head>
<body>
<%
Response.Write("<p>Hello World!</p>");
if (user != undefined) {
_greet(user);
}
%>
</body>
</html>
无论_greet()
是否未定义, user
始终运行。由于未返回日期类型字符串,expdate.toString()
会导致内部服务器错误。它只返回数字,不支持toDateString()
!有没有办法在ASP中调试JavaScript?
P.S。我已经在服务器管理器(IIS 8.5)中将默认语言设置为JavaScript。此外,我只是作为内部网站进行测试。
答案 0 :(得分:0)
首先,变量user
永远不会在if
块中未定义,因为您在此处定义它:
var user = Request.QueryString("name");
它可能为null或空字符串,但未定义。所以只需执行此类检查:
if ((user + "").length > 0) {
_greet(user);
}
这将检查长度,只有当某些东西出现时才会执行该功能。
其次,Cookie实例的.Expires
属性应该是一个日期,而不是字符串。只需删除.toString()
电话就可以了:
Response.Cookies("thisUser").Expires = expdate;