ajax提交表单重定向不行,如果浏览器被重定向,它们不会在ajax调用中重新发送表单数据?...

博主在优化网站URL时遇到问题,使用.htaccess规则进行规范化和移除尾随斜杠,导致AJAX调用中表单参数在重定向后丢失。寻求解决方法,避免硬编码URL以防止Ajax问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我一直在修改我的网站上的URL重写和修正我的URL的规范化(所以我没有在搜索引擎等重复数据),并建议无处不在或总是删除/强制结尾斜杠(我选择删除它),也重定向/索引。所以我把下面的两个规则在我的.htaccess为Apache的mod_rewrite回暖:如果浏览器被重定向,它们不会在ajax调用中重新发送表单数据?

--remove斜线

RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

--remove尾随/指数

RewriteRule ^(.*)/?index$ http://%{HTTP_HOST}/$1 [R=301,L]

这些规则工作在浏览器中很好。但是,我的一些ajax表单突然停止运行!我在Chrome和Firefox(Firebug)中找到了它,发生的事情非常奇怪。在这两种浏览器,页面做一个AJAX调用:

/ajax/index (ajax params intact) --> 301 redirect to /ajax/

/ajax/ (ajax params are no longer sent!) --> 301 redirect to /ajax

/ajax (ajax params again not sent) --> 200 OK but obviously script complains that params don't exist

任何人都可以证实,这种情况还是我失去了它?如果是这样,为什么它会这样呢?是否有一个适当的解决方案来修复它(除了改变我所有的Ajax调用永不会重定向,例如/ajax)?

非常感谢您为您的时间家伙:)

干杯

阿里

2010-07-31

Ali

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值