$ .post问题

时间:2019-05-28 09:13:04

标签: javascript php jquery web post

我正在对我的网站进行一些检查,以确保网络浏览器可以运行它。如果浏览器通过要求,我想重新加载网页并使用jQuery发送一个post参数,像这样。

我已经在jQuery上尝试过$.post函数,

$.post("index.php", { 
  correcto_obligatorio: true 
});

window.location.reload("index.php")

但是,当浏览器重新加载Web时,correcto_obligatorio上没有$_POST参数。我使用var_dump php函数进行打印,我得到的只是NULL

2 个答案:

答案 0 :(得分:2)

$。post是一个单独的异步请求。 window.location.reload只是重新加载页面,但不考虑所有异步请求。

如果不使用var_dump打印$ _POST ['correcto_obligatorio'],但是登录到文件,您将在此看到值。

有两种解决方案适合您。

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>

最常见,最合理的解决方案是第一个解决方案。

答案 1 :(得分:0)

您的代码不等待帖子完成。基本上,您发送请求并将浏览器重定向到index.php,而无需等待服务器回答您。考虑使用回调函数:

$.post( "index.php",  { 
  correcto_obligatorio: true
}, function( result) {
    if (result.passed) {
        window.location.reload("index.php")
    }
});

假设服务器以包含传递的参数的有效json对象作为响应(内容类型应设置为application / json)