gpt4 book ai didi

javascript - POST/重定向抛出 `Connection was reset` 浏览器错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:12 25 4
gpt4 key购买 nike

我正在为我们的客户构建单页结帐。此结帐应包含所有凭证、装运和付款表格。也应该可以编辑以前输入的值。除了一件事,一切都很好。

我的页面由多个包含组成:

  • 证书
  • 发货
  • 付款

在其中的每一个中,我都会检查相关数据是否在 session 中,如果是,我会显示不同的 View 。这里没有什么特别的。

例如:

<?php
if (is_array($_SESSION['credentials'])) {
... show filled in values ...
} else {
... show form ...
}
?>

当值已设置时,我还会显示一个编辑按钮。我这样做如下:

<div class="left-column">
<h1 class="title-left">Step 1 - Credentials</h1>
<div class="pull-left" style="width: 50%;">
Name: name<br />
Address: Address 11<br />
Postal Code: 12345AA<br />
Country: Country<br />
</div>

<br />
<div style="clear: both;height: 10px;"></div>
<center>
<form method="POST" action="/checkout/credentials/">
<input type="hidden" name="edit" value="credentials">
<button class="sexybutton sexysimple sexybestel">Edit</button>
</form>
</center>
</div>

其次是:

<div class="left-column">
<h1 class="title-left">Step 2 - Shipment</h1>
<i>Select a shipment method</i>
<form method="POST" action="/checkout/payment/">
<input type="radio" value="0" name="shipmentmethod"> Collect<br />
<input type="radio" value="1" name="shipmentmethod"> Deliver<br />
<input type="submit" value="Go to Step 3" class="sexybutton sexysimple sexybestel pull-right" name="shipment">
</form>
</div>

在凭据中,我检查了 $_POST['edit']。如果已设置,我将再次显示表单,其中包含客户之前在输入字段中填写的数据。

问题

每当我第一次单击编辑按钮时,它都会向我抛出一个Connection was reset 浏览器错误。如果我刷新页面,它会要求我再次提交表单。当我这样做时,错误消失了。我似乎无法弄清楚这是从哪里来的。我检查了服务器日志,但那里没有任何异常。

*注意:*同样的问题发生在发货和付款步骤之间。

相关的htaccess

Options       +FollowSymLinks
RewriteEngine On
RewriteBase /

order allow,deny
allow from all
RewriteCond %{HTTP_HOST} ^tapijttegelhandel\.nl
RewriteRule ^(.*)$ http://www.tapijttegelhandel.nl/$1 [R=permanent,L]
AddDefaultCharset utf-8

RewriteRule ^checkout/ /index.php?mod=checkout&action=show [NC,L,QSA]

索引.php

case 'checkout':
$action = isset($_GET['action']) ? $_GET['action'] : '';
switch ($action) {
case 'completed':
# ...
break;

case 'cancelled':
# ...
break;

case 'credentials':
case 'shipment':
case 'payment':
case 'edit':
default:
include $_SERVER['DOCUMENT_ROOT'].'checkout/show.php';
break;
}
break;

进度

  • 我已转储 session 变量以查看 session 中是否有异常。 (这里没什么奇怪的)
  • 我已经为 firefox 安装了一个 Tamper Data 插件来检查 POST 数据。 (这里也没什么奇怪的)

更新

我在我的代码中发现了上次检查所有内容时跳过的内容。然而,这可能与我的问题有关。

<script type="text/javascript">    
window.history.forward();
function noBack() {
window.history.forward();
}
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">

工作流程

/cart GET 200 OK
/checkout/credentials/ GET 304 OK
/checkout/credentials/ POST 304 OK
# edit
/checkout/credentials/ POST - Error 'Connection was reset'
# Refresh
/checkout/credentials/ POST 200 OK

最佳答案

“连接已重置”

有时可能意味着 php 崩溃。如果没有看到确切的文件,很难猜测是否会发生这种情况以及为什么会发生这种情况。

确保检查错误日志,输入:php --info | grep 错误以查看它被记录到哪个文件(如果您使用的是 linux/unix)。

我的猜测是一次意外中断;在某处声明查看此答案可能的原因:https://stackoverflow.com/a/20036720/988324

不过,您会在错误日志中找到一些痕迹。如果你能提供这个,我也许能提供更多帮助。

关于javascript - POST/重定向抛出 `Connection was reset` 浏览器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com