【问题标题】:JQuery AJAX url call - sometimes don't workJQuery AJAX url 调用 - 有时不起作用
【发布时间】:2020-12-08 11:34:55
【问题描述】:

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

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 控制台和网络日志的摘录,它可以正常工作:

我标记了被调用来执行数据库工作的“clients.php”。

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

我曾尝试清除第二台计算机上的缓存,使用 Ctrl+F5 刷新,然后页面运行几次,然后返回不调用 URL。到目前为止,我在 4 台计算机上尝试了各种结果,50-50 次失败。 我需要一个提示,告诉我应该在哪些计算机无法正常工作的地方进行检查,或者可能是另一种将表单提交到 PHP 页面的防故障方法。

我在函数中添加了“错误”事件,

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

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

【问题讨论】:

  • 你能分享更多细节吗?您尝试过什么检查为什么会发生这种情况?发送请求有问题吗,后端服务器接收请求,发回响应,处理响应?

标签: javascript jquery ajax url


【解决方案1】:

尝试后:

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

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

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 次),而旧功能仍然很古怪。 我希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    相关资源
    最近更新 更多