jQuery在IE中解释XML要注意的问题:
不管在写哪种
Web
介面的程式,都要特別重视 Content-Type 的设定,无论是 text/html , text/plain , text/xml 对于浏览器
来说,都是不同的意一的,处理的方式也有可能不一样,当你使用越符合网络
标准的方法来写程序
,相对的出问题的几率也会越小 (当然有例外)。
Web Service 是用 HTTP Handler 写的,而我在程序中所指定的 Response.ContentType 是 "text/plain",当我改成 "text/xml" 之后,所有程式就可以在 IE7 下正确执行了!
另外提及一点,在使用 jQuery.post( url, data, callback, type ) 方法开发
时,这个方法的最后一个参数 type 指的是返回资料的类型,其中包括有 "xml", "html", "script", "json", "jsonp", 与 "text" 等,即便你手动修改成 "xml" 而你的 Web Service 回应的资料所设定的 Content-Type 不是 text/xml 的话,在 IE 浏览器里一样是无法运行的,甚至会造成
Java
Script 执行错误。当不指定 type 参数时,预设 jQuery 会聪明的自动
判断回应的 Content-Type 自动判断解析
的资料类型
页面
getTc.jsp 输出XML:
<Root>
<Succeed>200</Succeed>
<Tc>***********</Tc>
</Root>
页面 showTc.jsp 回显Tc中的变量。
<script>
$.get
(
"getTc.jsp?account=*****",
function ( xml ){
alert( $( "Tc" , xml ).text() );
}
);
</script>
FIREFOX中显示正常,可以取到TC的值,
而IE中能取到XML的值
<Root>
<Succeed>200</Succeed>
<Tc>***********</Tc>
</Root>
但是无法显示$("Tc",xml).text();
原因是在getTc.jsp页面中有这么一句
<%@ page contentType="text/html; charset=gbk"%>
改成
<%@ page contentType="text/xml; charset=gbk"%>
就好了
原来在IE中,只要不写contentType = "text/xml"
jQuery都不会按XML格式来处理数据
而FireFox则兼容 text/html text/xml
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?