`

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

 
阅读更多

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

 

 

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

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

 

原因分析:

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

Java代码  收藏代码
  1. response.setContentType("text/html;charset=UTF-8");  
  2. PrintWriter out = response.getWriter();  
  3. out.println("");  
  4. out.close();  

 

解决方法:

改为使用print方法,如下:

Java代码  收藏代码
  1. response.setContentType("text/html;charset=UTF-8");  
  2. PrintWriter out = response.getWriter();  
  3. out.print("");  
  4. 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”即可,如下:

Js代码  收藏代码
  1. var message = result.replace("\\r""\r").replace("\\n""\n");  
  2. alert(message );  

 

 

 

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

示例代码如下:

Java代码  收藏代码
  1. <%  
  2. if (cont.getShowMessage() != null) {  
  3. %>  
  4. <script language="Javascript" defer="defer">  
  5.     alert("<%=cont.getShowMessage() %>");  
  6. </script>  
  7. <%  
  8. }  
  9. %>  

 

原因分析:

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

 

解决方式:

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

 

分享到:
评论

相关推荐

    毕设项目:基于springboot+mysql+ajax的网上借阅系统前端及后台.zip

    在本系统的前端,Ajax被用来实现实时查询、图书借阅状态更新等功能,通过XMLHttpRequest对象向后端发送异步请求,获取数据并动态更新页面。 4. **前端技术栈**:虽然未明确指出,但通常此类项目会使用HTML5、CSS3和...

    dynatrace-AJAX-edition软件

    在现代Web开发中,前端性能已经成为衡量用户体验和网站质量的重要指标。为了更好地优化前端性能,开发者们需要借助专业工具进行深入分析和测试。这里我们要介绍的是“dynatrace-AJAX-edition”——一款专注于前端...

    SSM框架加上Ajax demo

    这个"SSM框架加上Ajax demo"项目不仅涵盖了后端开发的基本流程,也涉及到了前端与后端的交互,是一个全面的Java Web开发实践案例。希望这个经验对你和其他学习者有所帮助,继续努力,持续提升自己的技能!

    面试宝典-鸿蒙应用,一款面向前端程序员的刷题应用

    TypeScript是JavaScript的一个超集,增加了静态类型检查,提升了代码的可维护性和开发效率,因此在现代前端开发中越来越受到重视。 【压缩包子文件的文件名称列表】中的"interview-handbook-project-main"可能是...

    Ajax时间秒表

    在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。这个时间秒表可能是用于计时、倒计时或者跟踪任务持续时间...

    jsp中调用用Ajax必备之品的json的jar包

    在Java服务器页面(JSP)开发中,与前端交互是一个常见的需求,这通常涉及到异步JavaScript和XML(Ajax)技术。Ajax允许我们在不刷新整个页面的情况下更新部分网页内容,极大地提升了用户体验。在JSP中使用Ajax,...

    Java Web开发实战经典.rar

    10. **持续集成与自动化测试**:如Jenkins、Maven等工具,可以自动化构建、测试和部署项目,是现代软件开发中的重要组成部分。 《Java Web开发实战经典》这本书很可能包含了以上所有或大部分知识点的详细讲解,通过...

    整理最近自己前端和JAVA开发笔试题中的知识点(公司面试).zip

    在本压缩包“整理最近自己前端和JAVA开发笔试题中的知识点(公司面试).zip”中,包含了前端和Java开发的面试重点知识点。这是一份非常实用的资料,旨在帮助求职者准备公司面试,提高成功入职的机会。我们将分别探讨...

    Java Web开发实战经典,李兴华版PPT和源码

    1. **Java基础知识**:在Java Web开发中,首先需要掌握Java语言的基础,包括语法、类与对象、异常处理、集合框架等。Java的面向对象特性使其成为Web开发的理想选择,强大的类库和强大的内存管理机制能够支持高效的...

    java AJAX技术指南

    在Web开发领域,AJAX(Asynchronous JavaScript and XML)是一种核心技术,它使得网页可以异步更新,无需重新加载整个页面。在Java环境下,利用AJAX技术可以构建更加动态、用户友好的应用程序。本指南将深入探讨Java...

    前端简介文档

    在IT行业中,前端开发是构建Web应用程序不可或缺的一部分。前端开发者主要负责用户在浏览器中看到和交互的部分,包括网页布局、动态功能以及用户界面。本文档将对前端开发的基础知识进行介绍,尤其是JavaScript语言...

    web前端工程师-1.docx

    尤其是在前端市场中,尽管初级开发者众多,但高级前端开发人员却供不应求,这使得竞争异常激烈。要在这个领域脱颖而出,不仅需要扎实的技术基础,还需要不断学习新的技术和工具。以下是一份详尽的前端工程师技能清单...

    Ajax练习.rar

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。这个“Ajax练习.rar”文件显然包含了一次针对Vue.js、BootStrap和axios的前端开发...

    深入体验Java+Web项目开发(开发日记)2

    在项目开发过程中,版本控制工具如Git是团队协作的重要工具,它帮助追踪代码变化,解决冲突,并实现代码共享。持续集成/持续部署(CI/CD)工具如Jenkins则可以自动化构建、测试和部署流程,确保代码质量。 测试是...

    动态显示JSP服务器内存的Ajax程序 图像版

    【标题解析】 "动态显示JSP服务器内存的Ajax程序 图像版" 这...综上所述,这个项目涵盖了Ajax技术在服务器监控中的应用,JSP服务器内存管理,以及前端图形化展示等多个IT领域的知识,是一个全面展示Web开发技能的实例。

    LAU是一款基于layui的后台前端框架

    layui是一款流行的、轻量级的前端组件库,它以模块化的开发方式,提供了丰富的UI组件,覆盖了网页设计中的大部分需求,包括表格、表单、按钮、图标、弹窗等。LAU在layui的基础上进行了深化和定制,旨在为后台管理...

    产品名称模拟测试web前端代码

    在“产品名称模拟测试web前端代码”中,我们主要探讨的是与Web前端开发相关的测试技术和实践。Web前端是用户与应用程序交互的界面,因此它的性能、功能和用户体验至关重要。在这个项目中,我们可能会涉及到以下几个...

    深入体验Java Web开发内幕 张孝祥

    再者,对于现代Web开发,可能会讲解到JavaScript和Ajax技术,以及前端框架,如jQuery或Vue.js,它们用于增强用户体验,实现页面的异步更新。同时,可能会介绍RESTful API的设计和使用,以及JSON作为数据交换格式的...

    java命名规范 开发规范

    d. 开发Service接口和Service接口实现,并在Action中通过set方法注入该Service; 接口文件:UserService 接口实现:UserServiceImpl 注入Service e. 开发DAO,DAO继承com.hikvision.xxx.HibernateBaseDAO; 示例 f...

Global site tag (gtag.js) - Google Analytics