2 回答
TA贡献1966条经验 获得超4个赞
$.post 是一个单独的异步请求。window.location.reload 只是重新加载页面,但不会考虑所有异步请求。
如果您不使用 打印 $_POST['correcto_obligatorio'] var_dump,而是登录到文件,您将在那里看到该值。
有两种解决方案适合您。
1)等待ajax结果并响应。
$.post( "index.php", {
correcto_obligatorio: true
}, function (data) {
if (data.passed_validation) {
window.location.reload("index.php")
}
});
2) 其次是张贴表格
<form action="/index.php" method="POST" id="my_form">
<input type="hidden" name="correcto_obligatorio" value="1"/>
</form>
<script>
function myFunc() {
$("#my_form").submit()
}
</script>
最常见和正确的方法是第一种解决方案。
TA贡献1816条经验 获得超4个赞
您的代码不会等待帖子完成。您基本上发送请求并将浏览器重定向到 index.php,而无需等待服务器回复您。考虑使用回调函数:
$.post( "index.php", {
correcto_obligatorio: true
}, function( result) {
if (result.passed) {
window.location.reload("index.php")
}
});
假设服务器使用包含传递的参数的有效 json 对象进行响应(内容类型应设置为 application/json )
- 2 回答
- 0 关注
- 174 浏览
添加回答
举报