jquery $.ajax()取xml数据的小问题解决方法


Posted in Javascript onNovember 20, 2010

开始的代码如下:

$.ajax({ 
type: "get", 
url: "Database/App_all.xml", 
dataType: "xml", 
timeout: 2000, 
beforeSend: function () {}, 
success: function (xml) { 
$(xml).find("app[id='id-1']").find("auther").appendTo($("#contain")); 
}, 
error: function () { 
alert("ajax failed!"); 
} 
});

也就是,从App_all.xml这个文件中找到id为“id-1”的这一项,并将继续在其子节点中找到auther标签,并将其内容加入到id 为contain
的div中,xml中我要查找的内容为<auther>cocept</auther>,我就是想把cocept这个字段取出来,放入容器中

结果这段代码在firefox中生效,在opera中也生效,但是在Safari和chrome中却没有效果,于是我上jQuery的官方论坛,和StackFlowover
论坛提问,后者有人回复我:

I assure you I was using $.ajax with Chrome just five hours ago at the office, and had no such problem.

I also imagine they use it here on SO and I have no problems here. I have no problems on jQueryUI in Chrome. I think it is your code.
大意就是斩钉截铁的说他用起来没有问题,是我自己的问题,我也纳闷了,后面也有人给我的建议更复杂:

You should use chrome's or safari's built-in developer tools (ctrl+shift+i) to track JS errors and track actual AJAX requests.

Is your code wrapped in document.ready? Is there any erros in javascript console? Also try to output something after success callback line.
Another cause for this could be incorrect mime-type for your XML file returned by server. It should be [Content-type: text/xml].
You can check that in chrome's or safari's built-in developer tools - just look for headers tab when xml resource is selected.
If it 's actual problem, you may need to tweak web-server configuration (main config or .htaccess for apache) to return correct mime-type

毕竟是自学jquery ajax框架刚起步……就遇到这么棘手的问题,的确麻烦……

但是,由于我一个不经意的发现,问题迎刃而解……

我用firebug查看成功后的页面元素状态,发现:

<div id="contain"> 
<auther>cocept</auther> 
</div>

我恍然大悟,原来这种直接用pretendTo插入的方法会连tagname也插入进去,难怪chrome和Safari不能识别(从另一个方面来说Firefox原来强大这么多……)

于是修改后的代码如下:

success: function (xml) { 
$("#contain").html($(xml).find("app[id='id-1']").find("auther").text()); 
}

先取出所需元素的text()的值,再以修改html的方法html()插入容器中,大功告成啦!测试均通过
Javascript 相关文章推荐
javascript之典型高阶函数应用介绍
Jan 10 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 Javascript
jQuery验证插件 Validate详解
Nov 20 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
AngularJS 最常用的八种功能(基础知识)
Jun 26 Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
vue组件编写之todolist组件实例详解
Jan 22 Javascript
uni app仿微信顶部导航条功能
Sep 17 Javascript
简单实用的js调试logger组件实现代码
Nov 20 #Javascript
扩展javascript的Date方法实现代码(prototype)
Nov 20 #Javascript
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 #Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 #Javascript
javascript来定义类的规范小结
Nov 19 #Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 #Javascript
js 创建快捷方式的代码(fso)
Nov 19 #Javascript
You might like
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
PHP中使用BigMap实例
2015/03/30 PHP
Smarty模板语法详解
2019/07/20 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
5款非常棒的Python工具
2018/01/05 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python换行与不换行的输出实例
2020/02/19 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
音乐教师个人工作总结
2015/02/06 职场文书
成事在人观后感
2015/06/16 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL