无法使用$.post刷新页面

Cannot refresh page with $.post

本文关键字:刷新 post      更新时间:2023-09-26

我很困惑,找不到正确的方法。我有一个问题,我将通过下面的例子使它变得简单。首先,test.php的代码:

<html>
<head>    
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script src="test1.js"></script>
</head>
<body>
<input value="press" type="button" onclick="test()">
<script>
alert ("Home");
</script>
</body>
</html>

现在是test1.js代码:

function test()
{
alert("Test1");
$.post("test.php");
}

从我的角度来看,我预计会有三个警报窗口:Test1、Home和Test1,因为我认为test.php会在调用$.post("test.php")后刷新。我错过了什么?我的错是什么?

我想在代码更复杂的页面中做到这一点(即,在自己的主体内点击按钮后刷新php页面,该页面将首先执行一些JS代码)。我很感激你的解释和你的解决方案。

您只需将请求发送到远程服务器,而不使用response。

来自jquery文档:

这是一个简写的Ajax函数,相当于:

$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});

所以您正在做的是发送一个ajax请求。这意味着页面不会被重新加载,服务器的结果会被发送回为post请求提供的回调函数,并且应该在那里进行处理。

要刷新页面,您应该提交这样的表格:

$('#formid').submit(callbackFunction);

当然,我想对于这个解决方案,你应该先在html中添加一个表单。。。

如果只想刷新页面,则不需要postajax。改为使用此功能:

function test()
{
    alert("Test1");
    window.location.reload(true); 
}

您应该使用location.reload(true);未加载的过载缓存。

真正的参数使其不从缓存中读取

两个问题

  1. 无需$.post使用window.location.reload(true)
  2. $(document).ready包括$(document).ready

test.php

<html>
<head>    
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script src="test1.js"></script>
</head>
<body>
<input value="press" type="button" onclick="test()">
<script>
alert ("Home");
</script>
</body>
</html>

test1.js

function test()
{
 alert("Test1");
 window.location.reload(true);
}

警报顺序为home->test1->home

$.post("test.php");

只能将您的变量或数据或任何类型的请求发送到test.php。它不会从test.php中获取所有代码并在您的页面中运行。如果你想从test.php得到一些响应,请使用:

$.ajax("test.php"); 

这种方法将请求或数据发送到test.php,然后还可以处理一些响应,例如:

$.ajax(
    url: "test.php", 
    data: null,
    type:"post",
    success: function(result){
        alert(result);
    }