Java应用程序中的每个请求都会产生另外两个带有HTTP 302错误的请求。
例如,如果请求查看名为 * board.html * 的网页,则此请求是从 * home.html * 发出的。我得到按以下顺序生成的3个请求:
POST home.html - 302 Moved Temporarily
GET board.html - 302 Moved Temporarily
GET board.html - 200 OK
我希望只得到最后的请求,不能找出为什么其他2个正在发生。
这种模式发生在所有导致我的过滤器触发3次的请求上。
该项目使用spring webflow。
1条答案
按热度按时间dzhpxtsq1#
在大量reading最终能够更改默认行为(默认行为是-获取请求,发布(302/303 -根据每个请求附加的位置重定向),最后是一个获取调用。
因此,对于一个请求,我们将发送一个获取请求,然后服务将返回带有位置属性的302/303(即,使用查询参数重定向),并且作为响应,通常加载带有QueryString的HTML。示例项目位于此link中,以下是为避免此默认行为而实施的更改,如下所示
为避免303/302出现不可预测的行为,我已停止重定向,并在配置类中添加了以下内容
因此我们将以下内容设置为false
这将避免位置重定向,现在类似的变化也必须在模板html中实现。因此,变化是添加一个操作url到html模板,无论表单存在于何处,如下所示
它成功地完成了表单提交,并以200 Ok http状态和html页面响应。因此,没有更多(GET - 200到302重定向到200),而是直接使用Get 200/Post 200进行单个请求调用,并将响应绑定到Html页面。
这样,只有最后的请求才有回应。我希望这对其他人有帮助。