繁体   English   中英

JQuery AJAX url 呼叫 - 有时不起作用

[英]JQuery AJAX url call - sometimes don't work

我在页面中使用 JEasyUI 框架,并且我有一个在提交时调用 URL 的表单,它执行一些数据库工作。 这是调用 URL 的 function(在代码前面的另一个 function 中定义):

 function saveClientItem() { console.log("Save Client Item, url:" + url); $('#formClientItem').form('submit', { url: url, onSubmit: function() { return $(this).form('validate'); return false; }, success: function(result) { console.log("Success saving client item with url:" + url); $('#windowClientItem').dialog('close'); $('#tableClientsList').datagrid('reload'); } }); };

在某些计算机上,页面工作正常,但在其他计算机上,它偶尔会调用 URL,但总是返回“成功”。 这是 Chrome 控制台和 .network 日志的摘录,它可以正常工作的计算机上的日志:从工作正常的计算机登录

我标记了被称为执行数据库工作的“clients.php”。

以下是 Chrome 控制台和计算机上无法按预期工作的网络日志的摘录:

从偶尔工作的计算机登录

我已经尝试清除第二台计算机上的缓存,使用 Ctrl+F5 刷新,之后页面运行了几次,然后又回到不调用 URL 的状态。到目前为止,我在 4 台计算机上尝试了不同的结果,50-50 次有效-失败。 我需要一个提示,告诉我在它不起作用的地方检查什么,或者可能是另一种将表单提交到 PHP 页面的防故障方法。

我将“错误”事件添加到 function,

 error: function(result) { console.log("error saving client item with url:" + url); }

……让我不解的是,“成功”总是被称为。 我意识到有些东西阻止了 URL 被调用(猜测是一些网络问题),但不应该引发“错误”事件吗?

尝试后:

  • 将 jEasyUI 版本从 1.9.7 更改为 1.4.2
  • 将 jQuery 版本从 1.13.1 更改为 3.5.1

...每次都出现同样的问题(即使在清空缓存和所有浏览器数据之后),我尝试将 function 放入循环中并调用它多达 100 次,并发布一些随机值,以及“clients.php " 文件被随机调用:有时在 1 次尝试后,有时在 17 次尝试后,有时它从未被调用过。 我最终将 function 修改为如下所示:

 function saveClientItem() { $('#formClientItem').form('submit', { url: url, onSubmit: function() { $.ajax({ type: 'POST', url: url, data: $(this).serialize() }).done(function(data) { console.log("Posting success:" + data); $('#windowClientItem').dialog('close'); $('#tableClientsList').datagrid('reload'); }).fail(function() { console.log("Posting failed."); }); // prevent refreshing the page return false; } }); };

每次都提交 100 个后续提交的循环(到目前为止测试了大约 10 次),而旧的 function 仍然很古怪。 我希望这可以帮助别人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM