在 AJAX 上进行 301 重定向 -- 是否被重定向?

7
我有一个针对服务器端点的AJAX调用,该端点执行301重定向到相同页面,但带有尾随斜杠。
当使用AJAX调用时,浏览器会遵循重定向还是忽略它们?在我的情况下,它不会遵循重定向,但我认为这可能是来自服务器配置的某些问题。
4个回答

4
也许我的回答有点晚了,但我曾经遇到过使用ajax请求时出现301响应的问题。解决方法非常简单:
Apache重写规则如下:
RewriteRule ^([^/]\w+)/?$ index.php?%{QUERY_STRING} [L,E=MODULE:$1]

您的XHR请求URL看起来是这样的:
/this/is/a/canonical/url + '?param=1&param=2...'

如果您没有直接调用文件(例如*.php),而是重写到规范化URL(看起来像一个没有*.php的目录路径),那么会导致301永久移动。为了解决这个问题,只需在您的XHR请求URL中加入/,如下所示:
/this/is/a/canonical/url + '/' + '?param=1&param=2...'

也许这可以帮助某些人。

4

2
好的,所以jQuery不遵循重定向,我明白了。谢谢。 - Eduard Luca
10
不,XHR会透明地跟随重定向。 - Will Morgan
1
并非所有情况都是如此。我已经设置了301重定向,但FF不会跟随它们。然而,Chrome会。 - threejeez
2
这甚至没有试图回答所提出的问题。它谈论了一个与实际问题毫不相关的库。即使如此,它也过于模糊,并且过度依赖链接。 - Jasper

2
我也遇到了这个问题,有人提出在路径后添加斜杠的建议引发了我的思考......我在Web.Config中有一个重写规则,将所有内容转换为小写,这就是导致我的AJAX调用出错的原因。我向GetResults进行POST请求(显示为301),而我的重写器(由于某种原因?)将其更改为小写的getresults GET,从而导致404错误。
希望这能帮助其他人。

-1

2
抱歉,这与问题有什么关系吗? - Eduard Luca
@EduardLuca,很抱歉,您的重定向未跨越域。 - GlacJAY
我不需要跨到另一个域,重定向发生在相同的URL上,但带有尾部斜杠。 - Eduard Luca

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