用超时请求JavaScript中的POST

时间:2018-07-17 14:33:55

标签: javascript ajax post request timeout

我想发送如下请求:

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(data) {
    console.log(data);
    var file = new Blob([data], {
      type: 'application/zip'
    });
    var fileURL = URL.createObjectURL(file);
    window.open(fileURL);
  },
  error: function(xmlhttprequest, textstatus, message) {
    if (textstatus === "timeout") {
      alert("got timeout");
    } else {
      alert(textstatus);
    }
  },
  timeout: 10000
});

但是超时还不够。 Java服务器出现错误:

  

尝试在关闭的通道上写[keepAlive:true]:远程主机可能已关闭连接

有没有一种方法可以使连接保持打开状态直到答案?

谢谢

1 个答案:

答案 0 :(得分:1)

将超时设置为0(无限制),默认情况下为0,但是某些浏览器有自己的超时。我希望您也知道超时以毫秒为单位,所以您仅等待10秒,如果timeout: 0不起作用,则可以尝试将其增加到60秒(60000)左右