为了账号安全,请及时绑定邮箱和手机立即绑定

如何从jQuery.ajax获取响应状态代码?

如何从jQuery.ajax获取响应状态代码?

拉丁的传说 2019-08-16 15:37:04
如何从jQuery.ajax获取响应状态代码?在下面的代码中,我要做的就是从jQuery.ajax调用中获取HTTP响应代码。然后,如果代码为301(永久移动),则显示“位置”响应标头:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>   <title>jQuery 301 Trial</title>   <script src="http://code.jquery.com/jquery-1.5.1.min.js"></script>   <script type="text/javascript">   function get_resp_status(url) {     $.ajax({       url: url,       complete: function (jqxhr, txt_status) {         console.log ("Complete: [ " + txt_status + " ] " + jqxhr);         // if (response code is 301) {         console.log ("Location: " + jqxhr.getResponseHeader("Location"));         // }       }     });   }   </script>   <script type="text/javascript">   $(document).ready(function(){     $('a').mouseenter(       function () {         get_resp_status(this.href);       },       function () {       }     );   });   </script></head><body>   <a href="http://ow.ly/4etPl">Test 301 redirect</a>   <a href="http://cnn.com/not_found">Test 404 not found</a></body></html>有人能指出我哪里错了吗?当我检查Firebug中的'jqxhr'对象时,我找不到状态代码,也找不到'Location'响应头。我在'完成'的最后一行设置了断点。非常感谢。
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

当您的XHR请求返回重定向响应(HTTP状态301,302,303,307)时,将XMLHttpRequest 自动跟随重定向的URL并返回该URL的状态代码

您可以通过statusxhr对象的属性获取非重定向状态代码(200,400,500 等)。

所以你不能从响应头重定向的位置301302303307请求。

您可能必须更改服务器逻辑,以便能够处理重定向,而不是让浏览器执行此操作。一个示例实现


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 1724 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信