按顺序发送多个 Ajax 查询在 chrome 和 Safari 中失败
Sending multiple Ajax queries in sequence fails in chrome and Safari
我有一个问题,我显示了一系列相互馈送的对话或 AJAX 结果。例如。用户将单击以发送触发 ajax 调用的消息,对话框打开,用户填写表单并发送,对话框关闭,表单通过 AJAX 提交,然后另一个 AJAX 响应将打开对话或重定向用户。此过程会在所有浏览器中显示第一个对话框,但在 Safari 和 Chrome 中显示第二个对话框时会显示错误。我 95% 确定它可以在所有浏览器中找到。现在它似乎失败了。触发错误函数,然后浏览器将打开用于第二个 AJAX 请求的 URL。
我正在使用jquery,PHP和javascript,我让它从eval(json(命令运行。从那以后,我重新构建了代码以返回原始的Javascript。
在任何情况下,错误都会在 AJAX 查询的"错误"处理程序上触发。返回的错误信息非常少。我知道Chrome有一个缓存过程,但不确定如何影响它,或者它是否存在于野生动物园中。无论如何,在运行返回的javascript之前,ajax的第二次调用似乎在safari和chrome中失败。我相信它以前可以在所有浏览器中工作,但现在我不太确定。我已经花了将近半天的时间,因此我将不胜感激。:D
用于运行 AJAX 调用的 Javascript 函数如下所示
function page(url){
$.ajax({
type: "POST",
url: url,
success : ajaxReturn,
cache: false,
dataType: 'script',
error: function(result, status, err) {
alert('HTTP ' + result.status + ' Error Encountered: ' + result.statusText);
alert(result.responseText);
alert('status: '+status+' error: '+err);
return;
}
});
}
function ajaxReturn(ret){
eval(ret);
$.unblockUI();
}
这与在两个 AJAX 调用中使用的代码相同。在某些情况下(如果在表单中发现错误,则为 IE(,返回代码几乎完全相同。我有一个用于所有对话,AJAX和相关过程的系统,到目前为止一直运行良好。
我从错误处理程序返回的消息是:
HTTP 0 Errpr Encountered: error
然后
<null>
然后
status:error error:
通过警报语句输出。哪里是空洞的对话。因此,由于运行相同的 ajax 函数并返回相同的代码,Chrome 和 Safari 在第二次调用时遇到问题。无论返回什么,它们在错误处理程序上都失败了,我不知道为什么。
好的,所以我发现了问题。对话中的表单内容是通过另一个 AJAX 调用提交的。因此,在 onsubmit 处理程序上,来自内容通过 jquery 序列化,然后发送到 AJAX。问题是我没有在 onsubmit 处理程序中的 AJAX 调用后包含返回 false。因此,由于某种原因,在 chrome 和 safari 上,这将返回错误状态 0,然后在通过 AJAX 调用的页面上转发我。
任何案例返回错误修复了它。甜!
- JS代码在jsbin中有效,在jsfiddle或Chrome/Safari中无效
- JQuery图像大小计算没有'不能在Chrome/Safari中工作
- 在Chrome/Safari中使用History.pushState重复历史记录条目
- getComputedStyle报告Chrome / Safari / Firefox和IE11之间的不同高度
- 下载画布图像 png Chrome/Safari
- jquery javascript chrome/safari issue
- 外部js click函数在Chrome / Safari中不起作用
- Javascript FF Slow Chrome/Safari FAST
- 创建 Chrome/Safari 扩展程序的先决条件
- Ajax 调用在 chrome/safari 中工作,但在 ff 和 ie 中失败
- Ajax在Chrome / Safari中提交作品,但不能在Firefox / IE中提交作品
- JQuery easySlider 在 Chrome/Safari 中不起作用
- Using onafterprint in Chrome & Safari
- 有了弹性弹跳,Chrome/Safari知道我的手指何时离开触控板.JS知道吗
- 导航栏在移动上折叠,滚动chrome/safari
- Chrome/Safari(webkit)中的JQuery Overlay无法进行更改
- 代码与Firefox一起工作,但不与Chrome, Safari
- jquery脚本不工作在chrome, safari和部分opera, FF是可以的
- 如何在webkit浏览器(chrome/safari)中以编程方式打开新选项卡
- 在Chrome/Safari中剥离表:tr:n -child td的bug