JQuery AJAX在GET请求上返回XML完成
一旦我的XML文件(或对象)成功返回,我需要执行代码。 不是之前,而是不是重复; 文件返回后只有一次。
我的代码是否已经完成了我想要完成的任务? 它似乎在IE中失败了几次,我需要确保它是可靠的。
$(document).ready(function(){ (function GetFile(){ $.ajax({ type: "GET", url: "Produce.xml", dataType: "xml", cache: false, success: function(result) { alert("XML File is loaded!"); alert(result); }, async: true }); })(); });
我知道有可以检查和validation的错误代码和readystatechange
值…在轮询服务器以查找XML文件时,我应该检查这些值吗?
删除async: true
后的逗号async: true
此外,如果您不打算再次调用,您的GetFile函数将立即执行,然后可能同时使用匿名或删除该函数
$(document).ready(function(){ $.ajax({ type: "GET", url: "Produce.xml", dataType: "xml", cache: false, success: function(result) { alert("XML File is loaded!"); alert(result); }, async: true }); });
这是作为原始提问者的编辑添加的,我已将其转换为社区维基答案,因为它应该是答案,而不是编辑。
修复它感谢@AndrewDouglas建议,这里是新代码(效果很好):
$(document).ready(function(){ (function GetFile(){ $.ajax({ type: "GET", url: "Produce.xml", dataType: "xml", cache: false, success: function(result) { alert("XML File is loaded!"); alert(result); }, error:function (xhr, ajaxOptions, thrownError){ z++; alert(xhr.status); alert(thrownError); setTimeout(GetFile, 5000); console.log("Error " +z+": " + thrownError); }, async: true }); })(); });
最后一条评论,您应该能够将setTimeout(GetFile, 5000)
更改为setInterval(GetFile, 5000)
,然后它将继续轮询您的XML文件。 然而,在success
部分中这样做会更有意义。
- 我可以为所有AJAX请求设置全局标头吗?
- 如何从jQuery ajax调用获得响应时间?
- jQuery.ajax在服务器上给出了“TypeError:无法读取null的属性’documentElement’,但不是本地的
- 如何制作链接,以便它们由document.ready中的JQuery处理,而不是全局范围
- 使用$ .ajax调用服务器端function
- 使用waitForKeyElements,是否可以阻止显示关键元素,并且只有在我的代码修改后才显示它?
- JQuery – 滚动并锚定到ajax驱动的div的底部,除非用户使用演示代码向上滚动
- 如何使用jQuery和JSON加载数据?
- 使用Ajax上传图像但PHP没有看到文件