如何使用JavaScript获取HTTP状态码?

5

如何从javascript/jquery中获取服务器返回的http状态码(200、302等)?

我不是想通过ajax请求来获取它。我希望在初始页面加载时获取它,并根据状态码执行一些自定义操作。

附:解决方案不必跨浏览器兼容。这是为内部应用程序设计的,因此任何特定于浏览器的解决方案都将被接受。


3
JavaScript 无法记录未通过 AJAX 发送的请求,因此无法实现此功能。此外,也没有内置的对象或变量可用于此。 - Adam Azad
4
我投票关闭此问题,因为OP所问的是不可能的。 - Andreas Louv
2
如果您使用某个框架,可以在模板中显示变量$statusCode,在控制器(或PHP代码或其他任何地方)中获取$statusCode = $this->response->getStatusCode(); - Pierre Emmanuel Lallemant
@ArcaneCraeda:页面总是有一个请求需要加载,这就是他所说的。 - Pierre Emmanuel Lallemant
@PierreEmmanuelLallemant 我没有访问服务器端代码的权限。我需要在客户端上完成这个任务。 - reggaemahn
显示剩余4条评论
1个回答

6

确认评论中提到的内容:

  1. 无法从服务器可靠地完成此操作。响应可能不会来自原始服务器,例如,如果在服务器和客户端之间存在缓存。

  2. 使用AJAX重新请求相同页面是不可靠的。第二个请求的响应可能与原始请求不同,例如,如果服务器对第二个请求返回未修改的响应。

  3. 使用任何已知的JavaScript API,标准浏览器都无法完成此操作。这是一个经常被问到的问题。请参见,例如使用JavaScript访问网页的HTTP标头


有一种可靠的方法可以使用WebWorker来实现。但是,它假定您至少在之前加载过页面,以便安装了WebWorker,之后您可以拦截所有请求及其状态码,唯一令人烦恼的部分是它不适用于第一次页面加载,但您可以要求在安装后立即重新加载页面以减轻此问题。 - Tofandel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接