【发布时间】:2015-09-03 21:15:04
【问题描述】:
我有一个 ajax 请求:
$.ajax({
url: webURL,
type: 'post',
data: somedata,
cache: false,
datatype: "json",
contentType: "application/json",
success: successFunc,
error: function(jqXHR, textStatus, errorThrown)
{
console.log("Status: " + textStatus);
console.log("Error: " + errorThrown);
alert("Some error!")
}
});
服务器上的这个请求实际上对数据库执行了一个长时间运行的查询(大约需要十分钟)。
但是,此请求会在大约 3-5 分钟内返回,并一直显示“一些错误!”的警报。但是在服务器上,数据库查询仍在运行并且从未返回!这只发生在 Firefox 上。它在 Chrome 上运行良好。 textStatus 字段返回“error”,errorThrown 为空。
谁能帮我解释为什么这个 ajax 请求在服务器甚至发送响应之前就返回了?
这种情况只发生在 Firefox 上,并且请求需要超过 6-7 分钟才能返回。
我有一个相关的问题。我看到 Firefox 在几分钟后不断重试 ajax 请求。所以我的代码检查请求是否已经存在于缓存中。如果是,那么缓存会一直被轮询,直到查询的结果也在缓存中。问题是,如果 Firefox 正在重试请求,这将如何影响请求?是否会有多个请求在缓存中等待,或者一次只有一个请求并且旧连接不断关闭?
【问题讨论】:
-
你分配给 somedata 什么?
-
确保您在 somedata 变量中提供了有效的 json 数据 - 如上所述,您能给我们一个输入/输出示例吗?
-
somedata 是表单的结果。所以输入: {query1: [{name: xyz, value:abc}, {name:qwerty, value:abcd}]} 输出:实际上是一个对象列表,由 Django 使用 json.dumps 返回: HttpResponse(json.dumps (cache_result), mimetype='application/json') 这适用于 Chrome,所以我不确定数据是否是问题
标签: javascript jquery ajax firefox