各种HTTP 3XX重定向代码之间的差异对我来说并不清楚.是的,我已经阅读了规范,但这里的标准和实际做法之间似乎存在一些差异.
该301重定向代码似乎很清楚:这意味着资源已被永久移动到另一个URI,以及将来的请求应使用URI.
并且307重定向代码似乎也很清楚:这意味着重定向是临时的,未来的请求仍然应该使用原始URI.
但我不能告诉区别是什么之间302和303,或者为什么他们中有谁真正从不同的301.它似乎302本来是一个临时重定向,(比如307),但在实践中,大多数浏览器都把它当成了一个303.但是a 303和a 之间有什么区别301?是301应该意味着重定向是更永久的吗?
在Django views.py文件中处理POST请求时,我有时需要将其重定向到另一个URL.我重定向到的这个url是由同一个Django views.py文件中的另一个函数处理的.有没有办法做到这一点并维护原始的POST数据?
更新:更多解释为什么我想这样做.我有两个网络应用程序(我们称之为AppA和AppB),它接受用户输入文本字段的数据.当用户单击"提交"时,将处理数据并显示详细结果.AppA和AppB期望不同类型的数据.有时,用户错误地将AppB类型数据发布到AppA.当发生这种情况时,我想将它们重定向到AppB并显示AppB结果,或者至少将它们填入他们输入AppA的数据中.
也:
客户需要两个独立的应用程序,而不是将它们合并为一个.
我无法显示代码,因为它属于客户端.
更新2:我已经确定KISS是这里最好的原则.我将这两个应用程序合并为一个,使事情更简单,更健壮; 我应该能够说服客户,这也是最好的方式.感谢所有的好评.如果我要按照描述维护两个应用程序,那么我认为会话就是这样做的方式 - 感谢Matthew J Morrison的建议.感谢Dzida,他的评论让我想到了设计和简化.
我已经使用Apache 301重定向将SEO URL实现到网站根目录中的"redirect.cfm",该网站处理所有URL构建和内容交付.
在301重定向期间,发布数据会丢失.
到目前为止还无法找到解决方案,尝试从重写中排除post方法 - 最坏的情况我们可以使用旧类型的URL来进行post方法.
有什么可以做的吗?
谢谢