=波波日志 > JavaScript/Ajax > ajax返回值存在存在空白符导致if语句不执行=
ajax返回值存在存在空白符导致if语句不执行
在使用ajax的repnseText属性获取动态页返回值进行一些简单判断,如if(xhr.responseText=='yes'){},使用alert)xhr.responseText)输出时确实是yes字符串,但是为什么if语句块就是不执行呢?
此时需要注意了,大部分导致出现这个问题的原因是请求的文件,此页面的非服务器端脚本代码输出部分存在空白符号,这些空白符号会岁着脚本动态的输出内容一起回传到客户端,导致出现空白符号而使if语句判断不通过,而不执行if语句代码块。
举一个简单的例子,asp的
上面的例子未使用response.End语句结束输出,那么“源代码的其他内容”这些语句也会输出到客户端,那么返回值就变成“yes源代码的其他内容”了。
那么假设“源代码的其他内容”为一个不小心碰到的空格符号,肉眼发现不了,虽然使用alert(xhr.responseText)查看时看到的确实是yes,但是实际的内容确实“yes ”,注意多了一个空白符号,通过alert(xhr.responseText.length)发现输出的是4个字符,所以if语句就出错了。所以要使用response.End结束输出源代码及动态页其他的输出结果。
但是也是存在一个问题,如果是<%%>代码块前面不小心用空白键打出了一个空格,这样返回值就是“ yes”了,和“yes”对比还是不正确。
综合上面说的,有2中办法解决这种问题
第一种,仔细检查请求的页面,<%%>代码块前面的空白符号全部删除,并且使用response.end结束输出,这个需要非常耐心,看的非常仔细才行。
第二种,在客户端进行空白符替换处理。
此时需要注意了,大部分导致出现这个问题的原因是请求的文件,此页面的非服务器端脚本代码输出部分存在空白符号,这些空白符号会岁着脚本动态的输出内容一起回传到客户端,导致出现空白符号而使if语句判断不通过,而不执行if语句代码块。
举一个简单的例子,asp的
+展开
-HTML
<%response.write "yes"%>源代码的其他内容
上面的例子未使用response.End语句结束输出,那么“源代码的其他内容”这些语句也会输出到客户端,那么返回值就变成“yes源代码的其他内容”了。
那么假设“源代码的其他内容”为一个不小心碰到的空格符号,肉眼发现不了,虽然使用alert(xhr.responseText)查看时看到的确实是yes,但是实际的内容确实“yes ”,注意多了一个空白符号,通过alert(xhr.responseText.length)发现输出的是4个字符,所以if语句就出错了。所以要使用response.End结束输出源代码及动态页其他的输出结果。
但是也是存在一个问题,如果是<%%>代码块前面不小心用空白键打出了一个空格,这样返回值就是“ yes”了,和“yes”对比还是不正确。
综合上面说的,有2中办法解决这种问题
第一种,仔细检查请求的页面,<%%>代码块前面的空白符号全部删除,并且使用response.end结束输出,这个需要非常耐心,看的非常仔细才行。
+展开
-HTML
<%response.write "yes":response.end'结束输出%>
第二种,在客户端进行空白符替换处理。
+展开
-JavaScript
var txt=xhr.responseText;
txt=txt.replace(/^\s*|\s*$/,'');//去掉首尾的空白符号
if(txt=='yes')alert('合格');
else alert('不合格');
txt=txt.replace(/^\s*|\s*$/,'');//去掉首尾的空白符号
if(txt=='yes')alert('合格');
else alert('不合格');
类别:JavaScript/Ajax 作者:波波 日期:2010-07-05 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(601)
- 操作系统及应用软件(377)
- JavaScript/Ajax(331)
- SQL及数据库(135)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- C#设计模式(26)
- 机械重工(26)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·DOM对象有哪些方法和..
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
随机博文
