当前位置: 首页 > 面试题库 >

返回重定向作为对XHR请求的响应

章涵蓄
2023-03-14
问题内容

如果浏览器收到对ajax请求的重定向响应,该怎么办?


问题答案:

如果浏览器收到对ajax请求的重定向响应,该怎么办?

如果服务器发送了重定向(又名302响应加上Location:标头),则浏览器将自动跟随重定向。对 第二个
请求的响应(假设它也不是另一个重定向)是程序所暴露的。

实际上,您没有能力检测是否已发生302响应。如果302重定向导致200,则您的程序的行为就如同原始请求直接导致200。

这既是我的经验,也是规范中提到的行为。

2016年更新:
时间已经过去,而且好消息是,新的fetch()API经过专门设计,可以对重定向的处理方式进行更细粒度的控制,其默认行为类似于XHR。也就是说,它仅在 本地
实现fetch()的地方有效。基于XHR的 polyfill
版本的fetch()仍然具有XHR的局限性。幸运的是,本机浏览器支持似乎很好。



 类似资料:
  • 例如,我试图向www.testjson发出GET请求。com/json,但响应是从不同的域URL检索的,例如www.testjson。com/confirmJson。 Spring mvc是否支持此功能,特别是restTemplate.exchange功能。 我目前正在做这类事情,但我得到一个500状态码(内部服务器错误),无法找出到底是什么导致了错误。 那么RestTemplate真的可以管理重

  • 我正在尝试从JavaScript应用程序向另一个应用程序中的endpoint进行API调用。 当我调用endpoint时,我得到了状态代码和消息,但我无法以任何方式访问响应体。我已经尝试了不同的方法来获取数据,但似乎没有一种方法对我有效。 在方法“someAction”中,我想使用来自API调用的响应/结果中的数据。我在代码中添加了单个日志行打印的输出。 如何在定义“result.status/m

  • 问题内容: 是否可以发送xhr HTTP HEAD请求以仅获取第一个请求的标头响应,而不像重定向一样自动跟随301、302?我只对获取URL的新位置感兴趣。例: http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send- method 似乎指定应遵循请求,有没有办法阻止这种情况? 问题答案: 没有,这不是您可以停止的公开行为。

  • 我正在尝试使用重定向规则设置静态web托管。在我的应用程序中,任何具有前缀api/(http://web.company.com/api)的请求都应该重定向到具有相同前缀(http://api.company.com/api)的另一个主机。我已按以下方式设置路由规则: 但请求没有被正确重定向。控制台中有两个不同的错误: XMLHttpRequest无法加载http://api.company.co

  • 我见过龙卷风文档和示例,其中self.write方法被广泛用于在超文本标记语言上呈现一些值,其中POST请求在处理程序中运行。但是我找不到关于如何将响应返回给客户的清晰信息。 例如,我正在从我的客户端调用Tornado服务器上的POST请求。接受post请求的代码为: 有了这个,我可以找到cbtp的值,有了,我可以用HTML打印它。但是,相反,我想以JSON格式将这个值返回给客户机,比如我想知道如

  • 我正在尝试对远程服务器进行api调用,最初,我遇到以下错误: