jquery 判断 重定向url_关于javascript:如何防止ajax请求使用jQuery跟踪重定向

我使用jQuery ajax函数来访问Web服务,但是服务器不是返回带有描述问题的状态代码的响应,而是将请求重定向到具有200头的页面,描述问题。 我无法对此进行任何更改,因此我需要以某种方式在客户端上解决它。

例:

请求转到某个找不到的URL,因此我收到302重定向到另一个位置。 发送一个新请求,我收到200 OK,从而防止错误回调触发。

有什么方法可以阻止ajax请求跟随重定向,而是调用回调,最好是错误方法。 或者,是否可以检测客户端中是否发生了重定向?

这可能会有所帮助:stackoverflow.com/questions/1804928/handle-jquery-ajax-redirect

奇怪的是,你的后端报告302未找到,而不是404。

防止重定向Xmlhttprequest的可能重复

我觉得你的问题很有意思,但整个问题似乎更让我误解了。至少我会试着解释一下我对这个问题的理解。

静默(透明)重定向是XMLHttpRequest规范的一部分(请参阅此处特别是"......透明地遵循重定向...")。标准仅提到用户代理(Web浏览器)可以阻止或通知某些类型的自动重定向,但它不是XMLHttpRequest的一部分。它是HTTP客户端配置(操作系统配置)或Web浏览器配置的一部分。所以jQuery.ajax不能有任何可以防止重定向的选项。

您可以看到HTTP重定向是HTTP协议的一部分,而不是XMLHttpRequest的一部分。所以它在另一个抽象层或网络堆栈上。例如,可以从HTTP代理或本地浏览器缓存中检索来自XMLHttpRequest的数据,它是HTTP协议的一部分。主要是提供数据而不是客户端的服务器可以影响缓存。

您可以将问题中的要求与防止在通信期间更改Web服务器的IP地址或更改IP路由的要求进行比较。在某些情况下,所有事情都可能很有趣,但是通信堆栈的另一级别有一些部分,并且不能由jQuery.ajax或XMLHttpRequest管理。

XMLHttpRequest标准表示客户端配置可以具有阻止重定向的选项。对于"Microsoft world",我更了解,您可以查看WinHttpSetOption函数,该函数可用于使用WINHTTP_DISABLE_REDIRECTS值设置WINHTTP_OPTION_DISABLE_FEATURE选项。另一种方法是使用WINHTTP_OPTION_REDIRECT_POLICY选项和WINHTTP_OPTION_REDIRECT_POLICY_NEVER值。可以在Windows中使用的另一个功能是WinHttpSetStatusCallback函数,它可以设置回调函数接收一些通知,如WINHTTP_CALLBACK_FLAG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值