为了账号安全,请及时绑定邮箱和手机立即绑定

$.post 的问题

$.post 的问题

PHP
白衣非少年 2021-06-30 14:07:43
我正在我的网站上做一些检查,以确保网络浏览器可以运行它。如果浏览器通过了要求,我想重新加载网页并像这样使用 jQuery 发送 post 参数。我已经$.post在 jQuery 上尝试过这样的功能:$.post("index.php", {   correcto_obligatorio: true });window.location.reload("index.php")但是,当浏览器重新加载网页时, 上没有correcto_obligatorio参数$_POST。我使用var_dumpphp 函数打印它,我得到的只是NULL
查看完整描述

2 回答

?
慕标5832272

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>

最常见和正确的方法是第一种解决方案。


查看完整回答
反对 回复 2021-07-16
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

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


$.post( "index.php",  { 

  correcto_obligatorio: true

}, function( result) {

    if (result.passed) {

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

    }

});

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


查看完整回答
反对 回复 2021-07-16
  • 2 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信