javascript - 当按下后退按钮时让 jQuery 触发 Ajax 请求

标签 javascript jquery http-headers session-variables browser-history

我有一个包含 80 多个动态生成的输入框的页面,当用户将表单提交到另一个 .php 页面并且其中一个输入包含一个非数字值时,它将使用以下方法将它们发送回输入页面: <?php header("Location: javascript:history.back()"); ?> ,同时它在 session 变量中注册错误。我使用 javascript:history.back() 的原因是因为它存储了表单中的值,即使您按下后退按钮也是如此。但是因为它正在缓存页面,所以我无法在同一个 .php 脚本中输出错误,所以我添加了一个元素和一些 Ajax 代码。 Ajax 代码检索另一个名为 error.php 的文件,其中包含:

<?php
header("Cache-Control: no-cache"); 
session_start();
if(isset($_SESSION['error'])) 
{
    echo $_SESSION['error'];
    unset($_SESSION['error']);
}
?>

这是在页面自行加载时检索到的,而不是在 history.back() 时检索到的。被使用了,它看起来像下面没有触发:

<script type="text/JavaScript"> 
 $(document).ready(function(){ 
     $("#error p").load("error.php"); 
 });
 </script>

有什么想法吗?

谢谢,
贾斯汀

最佳答案

通常不建议使用 header("Location: javascript:history.back()")

使用绝对路径即

header('位置:/forms/input.php');

关于javascript - 当按下后退按钮时让 jQuery 触发 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5369881/

相关文章:

javascript - 防止键盘关闭时出现模糊事件

javascript - 通过一次 plupload 调用实现多个 plupload 上传按钮

javascript - 类别内的 Jquery 随机化

apache - 如何理解 "semantically transparent"部分RFC2616的 "Cache-Control machanism"?

http - 为什么 PayPal 使用 HTTP 请求 header 进行 API 身份验证?

javascript - bootstrap 4 中的完整内容 iframe

javascript - Yandex Maps Api 示例不起作用

javascript - Chart.js 不显示/跳过标签

javascript - 为什么clearTimeout 不适用于此代码?

android - 使用浏览器 Intent 时传递 header