`
yunzhu
  • 浏览: 1140975 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
B2b19957-cda7-3a9e-83a0-418743feb0ca
监控应用服务器
浏览量:109082
2e8be8be-e51f-346c-bcdd-12623c9aa820
Web前端开发
浏览量:119243
Bfa5df64-a623-34b9-85b8-ef3ce2aed758
经典异常的解决
浏览量:203979
社区版块
存档分类
最新评论

Ajax开发中的经典异常解决[前端](持续更新)

阅读更多

PS: 记录在开发过程中使用Ajax遇到的“奇怪”的问题,有助于自己日后查看,也希望有助于遇到同样问题的同胞。有时一些问题可能很简单很简单,但是开发当中遇到时却可能令你头疼不已。有同感的顶起

 

 

异常1: js中ajax返回空字符串长度不为0的问题

JS通过Ajax从Java后台获取字符串,Java中返回空字符串"",但是到JS中却成为了长度为2的非空字符串

 

原因分析:

Java代码中向response的PrintWriter对象输出内容时使用了println方法,因此虽然输出一个空字符串,实际上却还有一个换行,所以在JS中这个带有一个换行的字符串长度为2,如下:

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("");
out.close();
 

解决方法:

改为使用print方法,如下:

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("");
out.close();

 

 

 

 

异常2: js中ajax返回字符串alert时换行的问题

JS通过Ajax从Java后台获取字符串,字符串中带有换行“\r\n”,但是JS中alert出来时,没有成功换行却显示了“\r\n”字符串

 

原因分析:

Java后台返回给JS的字符串中含有“\r\n”时,由于经过转义,所以在JS中实际上成了“\\r\\n”,如果不经过处理,直接alert,那么就会显示出“\r\n”

 

解决方法:

在JS中将字符串中的“\\r\\n”替换为“\r\n”即可,如下:

var message = result.replace("\\r", "\r").replace("\\n", "\n");
alert(message );

 

 

 

异常3: JSP中通过Java表达式获得的字符串 (含有换行) 赋给JS使用时报错

示例代码如下:

<%
if (cont.getShowMessage() != null) {
%>
<script language="Javascript" defer="defer">
	alert("<%=cont.getShowMessage() %>");
</script>
<%
}
%>
 

原因分析:

如果Bean的getShowMessage()的返回值是一个简单的字符串时没有问题,但是如果字符串中含有“\n”或者“\r\n”的换行符时打开JSP页面就会报错。貌似是因为.jsp编译成.java文件时这个地方有非法的换行所造成的。

 

解决方式:

在Java代码中,字符串的换行符号使用“\\n”代替“\n”,使用“\\r\\n”代替“\r\n”

 

 

 

6
0
分享到:
评论
5 楼 yunzhu 2014-06-26  
骑猴上树 写道
我的返回空显示长度4,按你说的去掉ln还剩2

你后台代码是什么样的?
4 楼 骑猴上树 2014-06-26  
我的返回空显示长度4,按你说的去掉ln还剩2
3 楼 yunzhu 2013-03-27  
杨冰凝 写道
[flash=200,200][img][img]
引用
[u][i][b][/b][/i][/u]
[/img][/img][/flash]

您说的是神马
2 楼 杨冰凝 2013-03-27  
[flash=200,200][img][img]
引用
[u][i][b][/b][/i][/u]
[/img][/img][/flash]
1 楼 yehayeah 2012-09-21  
谢谢分享。

相关推荐

Global site tag (gtag.js) - Google Analytics