JQuery AJAX 在 GET 请求完成时返回 XML
JQuery AJAX return XML on GET request complete
一旦我的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
});
})();
});
我知道有onerror
代码和readystatechange
值可以检查和验证......我是否应该在轮询服务器以查找 XML 文件时检查这些值?
删除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
部分中这样做会更有意义。
相关文章:
- 如何在自动完成时设置属性标题
- Adobe Edge:动画完成时添加onComplete处理程序
- jQuery自动完成触发器在选择时返回
- 当一些事情可以通过JS或CSS完成时,我应该选择哪种方式
- NodeJS服务器在检索部分时返回505/404错误
- 当send_data完成时,Rails send_data和Javascript处理程序
- Jquery在刷新时返回元素的旧值
- 在HTML表单中键入时返回文本
- Angularjs - url params:单击时返回 url 中的角度变量
- JQuery AJAX 在 GET 请求完成时返回 XML
- Ext.Ajax.isLoading 在并非所有请求都完成时返回 false
- 如何使用OOP使异步ajax请求在完成时返回值
- 自动完成在ajax请求时返回一个错误
- 使用不同的参数多次调用同一函数.完成时:在其他函数中使用每个返回值
- 在es6中,我需要我的承诺在完成时返回true或false
- 在等待$onInit回调完成时,我应该为Angular绑定的属性返回什么?
- ASP.Net MVC处理控制器事件的最佳实践,该事件不返回视图,但在完成时弹出一个窗口
- 当承诺在要求中完成时返回一个对象
- 何时以及如何仅在承诺完成时返回http响应
- 只有当ajax调用完成时才返回函数中的值