首页 > 解决方案 > Javascript:请求数组的ajax问题

问题描述

我对 javascript 还很陌生,我仍在尝试掌握回调概念。即使那样,我也不确定回调或 ajax 本身是否存在问题。

所以我有这个回调函数,它基本上在我的代码的其他地方接受一个对象数组。

function powerAmplifierInfo(id, cb) {
  ApiGet('/system/radio-frequency/tx/' + id + '/power-amplifier', function (err, result) {
    if (err && !TESTING) {
      alertError("Connection error: " + err.statusText);
      return;
    } else if (result && result.result.code !== "OK") {
      alertError(result.result.message);
      return;
    }

    if (TESTING) {
      result = { powerAmplifier: "TEST model", uptime: Date.now() };
    }

    cb(result.powerAmplifier);
  });
}

此函数使用另一个函数,该函数使用 ajax 向某个服务器发送 get 请求。

function ApiGet(urlSuffix, cb) {
  var url = apiPrefix + "/" + urlSuffix;

  $.ajax({
    url: url,
    type: 'GET',
    success: function (result) {
      cb(null, result);
    },
    error: function (err) {
      cb(err, null);
    }
  });
}

现在,我列表中的请求链可以工作,但是当我在循环中重新运行代码时,有时请求会混淆在一起,因为似乎 ajax 在发送请求时切换了一些端口顺序。我在使用 Wireshark 对本地网络进行故障排除时发现了这个问题。这是一张图片来展示它: Wireshark 端口混淆图像

Get 请求已发送,但在第 3 次和第 4 次请求之间存在端口混淆。如我们所见,服务器在没有端口顺序混淆的情况下回复。

我想知道,这是一个已知问题,还是我的代码甚至我的服务器有问题?在我的回调函数而不是对象数组中发送单个对象时,我没有收到此错误。

提前致谢!

标签: javascriptajaxhttp

解决方案


推荐阅读