服务器现在同时输出json和xml两种数据,取决于服务程序和页面之间的约定。在程序遇到问题的时候会返回错误信息,也按照相同的约定会返回json或者xml格式的数据。比如当页面请求xml的时候服务会返回:
<?xmlversion="1.0"encoding="gb2312"?><error>出错了</error>
而当页面请求的是json的时候服务器会返回
alert("出错了")
但是今天遇到的问题是,服务器本身出了问题,打个比方,比如说遇到404或者500错误,无从得知现在应该返回xml还是json格式的出错信息。于是服务器就统一返回了一个xml格式的错误。但是页面这个时候是用script标签在请求一个json数据,接收到一个xml文件,直接就产生语法错误了。改成json的话,请求xml的地方也无法提供正确的错误提示。
这个时候我们需要的就是服务器返回一个同时符合javascript和xml语法的错误信息,或者说把xml和javascript的错误信息放到一起。
嗷嗷研究过把css和javascript放在一个文件里面,主要是为了可以较少一个http请求。把xml和javascript放在一起有一些不同。
最容易想到的是“<!-- ”注释符。由于历史原因,这个xml里面的注释符在javascrip里面是一个单行注释符,也就是说在javascript里面,它以回车符为结束,而在xml里面是以-->结束。因此如果用这样一个符号开始一个文件,我们就可以通过控制它的结束位置来控制它在不同语法下面的意义。
error.xml
<!----><error>出错了</error><!--
alert("出错了")//-->
注意,从xml的角度上来看,这个xml没有带<?xml部分,因此不能制定encoding编码,只能用默认的utf-8编码输出。或者用实体替换和转义符来回避编码问题
error.xml
<!----><error>出错了</error><!--
alert("\u51fa\u9519\u4e86")//-->
之所以刻意不带<?xml,是因为按照规范<?xml必需出现在最开始部分,虽然IE可以允许<?xml前面出现<!-- -->注释,但是FF就没有这样的灵活性了。
简单的在IE下面用两种语法处理这个文件的一个例子:
<HTML>
<HEAD>
<TITLE>test</TITLE>
<METANAME="Author"CONTENT="emu">
</HEAD>
<BODY>
<xmlsrc="error.xml"id="err"></xml>
<SCRIPTLANGUAGE="JavaScript"src="error.xml"charset="utf-8"></SCRIPT>
<SCRIPTLANGUAGE="JavaScript">
alert(err.getElementsByTagName("error")[0].xml)
</SCRIPT>
</BODY>
</HTML>
分享到:
相关推荐
DOM将整个XML文档加载到内存中,形成一个树形结构,便于访问任意节点;而SAX则是事件驱动的,逐行处理XML,适合处理大型文件。 为了使留言板具有交互性,我们可以采用JavaScript或服务器端语言(如PHP、Python、...
【网上快餐系统(试试整合)】是一个模拟现实的网上快餐店管理系统,旨在为学习和实践IT技术,特别是Java Web开发的学生或开发者提供一个项目案例。这个系统并未在现实中投入使用,而是作为一个教学工具,帮助用户...
【标题】与【描述】都指向了一个以"腊八节的抓迷藏"为主题的小游戏源码,这表明我们正在处理一个与编程、游戏开发相关的压缩包文件。这个小游戏可能是为了庆祝中国传统节日腊八节而设计的,它可能包含了一些与腊八节...
本主题将探讨如何使用JavaScript和CSS来实现当鼠标移动到一个`<div>`元素上时改变其背景色的效果。 首先,我们来讨论CSS的方法。CSS(Cascading Style Sheets)是用于描述HTML或XML(包括如SVG、MathML等各种XML...
1. 引入jQuery库和插件的JavaScript文件。 2. 在HTML中设置选项卡结构,包括标题和内容区域。 3. 初始化插件,设置必要的配置参数,如Ajax请求的URL、默认选中的选项卡等。 4. 使用CSS调整样式,以匹配网站的视觉...
1. CombineScriptsHandler.ashx - 这是一个处理程序,可能用于合并和压缩JavaScript文件,以减少HTTP请求并提高页面加载速度。 2. Default.aspx - 这是默认的ASP.NET网页,展示了控件的使用示例。 3. Web.config - ...
在Android开发中,WebView是一个非常重要的组件,它允许我们在原生应用中内嵌网页内容,实现混合式开发。本文将详细讲解如何在Android的WebView中实现图片上传功能,并与HTML5 JavaScript进行交互。 1. **WebView...
3. "服务器软件.url" - 类似地,这个文件可能链接到一个服务器软件的集合页面,可能包含了IIS6或其他服务器软件的下载链接或相关教程。 4. "jb51.net" - 这可能是一个重复的文件名,也可能是指向jb51.net的另一个...
- **文本编辑**:EditPlus提供了一个简洁的用户界面,可以打开和编辑各类文本文件,包括纯文本、HTML、XML、CSS、JavaScript等。 - **编码支持**:支持多种字符编码,如ASCII、Unicode、UTF-8等,确保在不同系统和...
2. 构建请求URL:根据API文档,开发者需要构造一个包含API地址、参数和密钥的URL。例如,可能需要指定城市名、日期等信息。 3. 发送HTTP请求:使用编程语言中的HTTP客户端库(如JavaScript的fetch或XMLHttpRequest,...
Magento是一款开源的电子商务平台,以其强大的功能和高度的可定制性而受到许多在线商家的青睐。模板在Magento中扮演着至关重要的角色,它们决定了商店的外观和用户体验。"mEbay_v1.6.0"可能是一个专为Magento设计的...
描述中提到,FusionCharts是一个"很好的FLASH图表工具",这表明该工具在设计和功能上具有高质量和实用性。"赶快下载试试吧"鼓励用户下载并亲自测试其性能,同时提醒用户在使用后留下评论,这有助于其他潜在用户了解...
【标题】"网站在线客服系统(Jsp+MySql)"是一个基于Java Web技术构建的开源客服解决方案,它结合了JSP(JavaServer Pages)和MySQL数据库,用于实现网站上的实时交流功能。这个系统允许访客与客服人员进行实时对话,...
8、写一个struts.xml 包含use.xml 1)跳转到 /user/register_form.jsp <result name="form">/user/register_form.jsp 完善action。 <param name="inputName">image ...
1. JSON查看:HiJson提供了一个清晰的界面,可以直观地查看JSON对象和数组,使得理解和调试JSON数据变得轻松。 2. 格式化:对于杂乱无章的原始JSON字符串,HiJson能将其自动格式化,使代码更加整洁易读,提高阅读...
相册本机应用程序是一个示例本机移动应用程序,展示了的用法以及Telerik Platform服务到该应用程序的集成。 要下载源代码,只需单击“下载ZIP”按钮。 展示的功能和SDK 以下是“相册本机”示例应用程序中展示的...
2. **Result类型**:Struts2支持多种Result类型,如dispatcher(用于转发到一个JSP页面)、stream(用于处理文件下载)和freemarker(用于FreeMarker模板引擎)。开发者可以根据需求选择合适的Result类型。 3. **...
例如,在一个列表中,当鼠标悬停在一个项目上时,不仅该项目会改变背景色,其子项目也会跟随变化。 - **动态内容**:结合JavaScript,可以根据用户的操作动态地修改背景色或其他样式,例如响应式设计中的适应屏幕...