解决 JScript 中使用日期类型数据时出现类型错误的问题

例如以下代码:

程序代码:


代码如下:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<script language="JScript" runat="server"> 
Response.Cookies("xujiwei")("name") = "xujiwei"; 
Response.Cookies("xujiwei")("gender") = "male"; 
var expiredDate = new Date(2008, 11, 31); 
Response.Cookies("xujiwei").Expires = expiredDate; 
</script>

在浏览器中打开之后,就会出现以下错误:

引用内容:
Microsoft JScript 运行时错误 错误 ''800a000d''

类型不匹配

/temp/test.asp,行 6

这就意味着,我们按照类似在VBScript里的使用日期类型数据的方法在JScript不再行得通,但是我们总是需要在服务端中使用日期类型数据的,如果操作数据库是采用参数化Command的方式的话,那么需要使用日期类型数据的地方会更多,总不能因为不能使用常规方法来添加一个日期参数而把它放在SQL语句里吧。

幸好,JScript的设计者们考虑到了这一点。JScript在服务端使用时,往往是做为ASP的另一种脚本语言,而JScript则是微软在JavaScript上发展而来的微软自己的东西,考虑到这一点也是应该的。

在JScript中,解决这一问题的关键就是,Date类型的对象提供了一个函数getVarDate,它在JScript语言参考的说明如下:

引用内容:
当与 COM 对象、ActiveX® 对象或其他以 VT_DATE 格式接受和返回日期值的对象(例如 Visual Basic 和 VBScript)进行交互时,使用 getVarDate 方法。实际格式取决于地区设置,不随 JScript 变化。

好了,到现在问题的解决方法也已经浮出水面,就是使用getVarDate()函数将Date类型对象转换成可以与ASP中内置对象Response等可以交互的日期类型对象,那么将一开始的代码修改如下:

程序代码: 


代码如下:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<script language="JScript" runat="server"> 
Response.Cookies("xujiwei")("name") = "xujiwei"; 
Response.Cookies("xujiwei")("gender") = "male"; 
var expiredDate = new Date(2008, 11, 31); 
Response.Cookies("xujiwei").Expires = expiredDate.getVarDate(); 
</script>

再在浏览器打开这个测试页面的时候,就不再会有错误信息出现,说明客户端的Cookies成功写入并设置了到期时间为2008年12月31日。

希望此文对你有所帮助。

(0)

相关推荐

  • JScript中调用ActiveX获取访客网卡MAC地址实现代码

    JScript调用activeXObject获取访客的网卡MAC地址,注意只能IE下运行(IE8+没测试),会有安全提示,提示如下: 复制代码 代码如下: 在此页上的ActiveX控件和本页上的其他部分的交互可能不安全.你想允许这种交互吗? 注意选择"是",要不报错无法获取: 源代码如下: <html> <head> <title>JScript+ActiveX获取访客MAC网卡地址</title> </head> <b

  • 在JScript中使用缓存技术的实际代码

    在使用VBScript时,我们可以用Application缓存数组来实现缓存,例: 程序代码: 复制代码 代码如下: Dim rs,arr  rs.Open conn,sql,1,1  arr=rs.GetRows()  Application.Lock()  Application("cache")=arr  Applicatoin.UnLock() 在VBScript里,数组是可以存到Application对象里的,但是如果ASP的语言选择为JScript的话,那么就有些不妙了,我

  • 使用jscript实现二进制读写脚本代码

    因此,这里是一个很好的方式访问的二进制文件从JScript的.如果您要访问的这个对象从VBScript中,然后把它放在一个SWF文件.此对象已经被用于在愤怒将文件上载到Web服务,并已被证明是好的和快速的文件,在0-10 MB的地区./** This is a fairly well optimized object which alows 访问的二进制文件从JScript的在Windows     *作业系统.     *该文件的末尾是小的一套测试,以显示它如何    *用.您将需要adodb

  • JScript 脚本实现文件下载 一般用于下载木马

    jscript版本 复制代码 代码如下: var objArgs=WScript.Arguments; var sGet=new ActiveXObject("ADODB.Stream"); var xGet=null; try{ xGet=new XMLHttpRequest(); }catch(e){ try{ xGet=new ActiveXObject("Msxml2.XMLHTTP"); }catch(ex){ try{ xGet=new ActiveXO

  • 使用 JScript 创建 .exe 或 .dll 文件的方法

    什么是 JScript? JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现.Internet Explorer 中的 JavaScript,实际上是指 JScript.JScript 已被 Windows Script Host(WSH)支持(WSH 中的 JavaScript shell scripting:C:\> cscript jslint.js).JScript 最新的版本(JScript.NET)基于 ECMAScript 4.0 ,并且可以在 .Ne

  • jscript读写二进制文件的方法

    本文实例讲述了jscript读写二进制文件的方法.分享给大家供大家参考.具体实现方法如下: var bin = new Array(256); for(var i=0;i<256;i++){ bin[i]=String.fromCharCode(i); } function TestWrite(){ var Stream = new ActiveXObject("ADODB.Stream"); var adTypeBinary=1,adTypeText=2; Stream.Typ

  • 解读IE和firefox下JScript和HREF的执行顺序

    很久都没有写关于代码方面的文章了.主要原因还是因为最近的工作都集中在需求分析方面,没有了现实中的感触,就没有了写作的动机.讨论一个关于JScript执行顺序的问题.示例代码如下: a.htm <A onmouseup="func('onmouseup')" href="b.htm">Click Me!</A> <A onclick="func2('onclick')" href="d.htm"&g

  • JScript中使用ADODB.Stream判断文件编码的代码

    一开始使用ASCII编码来读取文本数据,模拟读取二进制数据,但是发现如果字符编码大于127时,只会得到小于128的值,相当于和128取余了,因此ASCII编码是不行的. 继续寻找,在CodeProejct.com找到一篇文章<Reading And Writing Binary Files Using JScript>,里面刚好有我需要的内容. 其实说来也简单,就是把编码换一下,使用437,这个是IBM扩展过的ASCII编码,把ASCII编码的最高位也利用起来,将字符集中的字符从128个扩展到

  • 解决 JScript 中使用日期类型数据时出现类型错误的问题

    例如以下代码: 程序代码: 复制代码 代码如下: <%@LANGUAGE="JScript" CODEPAGE="65001"%>  <script language="JScript" runat="server">  Response.Cookies("xujiwei")("name") = "xujiwei";  Response.Coo

  • 解决vue中使用Axios调用接口时出现的ie数据处理问题

    1.问题 近期在使用vue2 + axios 调用接口时碰到一个IE中很奇葩的问题,让我头痛了很久. 废话不多扯,就是在其他浏览器中调用接口返回数据然后可以很顺利的进行处理,但在IE(9-11)中发现发送请求是成功的而且也能抓到服务端返回来的数据.却发现在处理返回来的数据的时候处理的有点问题,怎么搞就是不行. 2.处理过程及方法 我使用了console大法去解决这个问题,具体是这样的:我先将服务器返回过来的数据打印到浏览器控制台,结果发现都能打印出来,这个时候就郁闷了,明明有数据为何在IE上还是

  • JSP中内建exception对象时出现500错误的解决方法

    本文实例讲述了JSP中内建exception对象时出现500错误的解决方法.分享给大家供大家参考,具体如下: 尝试使用JSP的内建exception对象,写了下面三个文件.思路很简单,文件index若提交字串为空,则get抛出异常,交由error.jsp处理.但实际却不能正常运行,会出现IE的500错误页面.环境为Tomcat 5.5,IE6.0. 在sun的论坛上有人贴出了原因,是IE的某个设置.Tomcat5.0以后的版本error page在处理时会返回error code 500.而IE

  • 解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题

    前几天在工作的过程中,在数据渲染的时候,发生了swiper那一部分的轮播图不在滚动,手动滑动也没有效果.一直感觉数据开始渲染,是不是数据渲染的时候,并没有生成swiper的节点呢.后来第一感觉就是把控制swiper轮播的函数放在初始化事件中去, 放在初始化事件中去: 结果并没有达到自己的理想状况,后来放在数据获取之后哪里在进行轮播事件的发生, swiper终于可以滑动了.其实这也不能算是一个什么大的问题点,只是单纯的想记录一下.以后在遇到相似的问题,更多的应该是从数据实现的先后来出发.这次就当做

  • 易语言把非文本类型数据变为文本类型

    易语言到文本,这个是什么意思呢?这个命令就是把非文本类型数据变为文本类型,你看我下面的实例就知道了. 1.易语言新建一个windows窗口 点击进入代码编辑区 具体看如何用易语言编写自己第一个程序? 2.这里我们要使用调试输出这个函数,具体看易语言调试输出函数实例详解我们输入调试输出 (1)这行代码是用于比对这里我们要使用调试输出这个函数,具体看易语言调试输出函数实例详解我们输入调试输出 (1)这行代码是用于比对 3.我们在输入 到文本这个命令 4.我们展开这个函数 发现只有一个参数,这个参数我

  • Navicat中导入mysql大数据时出错解决方法

    Navicat 自己到处的数据,导入时出现无法导入的情况. 最后选择利用MySQL命令导入方式完成数据导入 用到命令 use 快捷方式 \u source 快捷方式 \. 快捷方式可以通过help查询 mysql>\u dataname mysql>\. d:\mysql\dataname.sql 导入时碰到问题及解决方法 导入时中文乱码 解决方法: 在用Navicat导出时用的是UTF8编码,导入时MySQL用自己默认的编码方式导入,中文产生了乱码 用命令查询 mysql>show v

  • 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法

    写此文的背景:在学习使用angular的$http.post()提交数据时,后台接收不到参数值,于是查阅了相关资料,寻找解决办法. 写此文的目的:通过上面提到的文章中的解决之道,结合自己的经验,总结了如下发现. 前端:html,jquery,angular 后端:java,springmvc 一.平常使用的post提交和接收方式 前端使用jquery提交数据. $.ajax({ url:'/carlt/loginForm', method: 'POST', data:{"name":&

  • 解决vue中post方式提交数据后台无法接收的问题

    最近用vue做项目,遇到ajax提交值的问题. 用post方式提交,后台无法接收到值.百度了半天,各种解决方式都有,下载中间件之类的,都试了. 最后咨询大牛才知道是数据没有序列化的问题. 下面是源码: 因为我没有使用箭头函数,所以需要在外面重新定义this,这样不太好,因为有时忘了的话就很尴尬了. 不过不知道为什么,我之前用 JSON.stringify( ) 完全没有效果. 改成 : var qs = require('querystring') qs.stringify(data) 就ok了

  • 解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)

    [详细错误]:由于出现错误 c00ce56e 而导致此项操作无法完成 [造成原因]:未指定输出编码格式. [解决办法]:句首加入header("content-type:text/html; charset=UTF-8");

  • Android中的sqlite查询数据时去掉重复值的方法实例

    1.方式一: /** * 参数一:是否去重 * 参数二:表名 * 参数三:columns 表示查询的字段,new String[]{MODEL}表示查询该表当中的模式(也表示查询的结果) * 参数思:selection表示查询的条件,PHONE_NUMBER+" = ?" 表示根据手机号去查询模式 * 参数五:selectionArgs 表示查询条件对应的值,new String[]{phoneNumber}表示查询条件对应的值 * 参数六:String groupBy 分组 * 参数

随机推荐