$.post 的问题

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


我已经$.post在 jQuery 上尝试过这样的功能:


$.post("index.php", { 

  correcto_obligatorio: true 

});


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

但是,当浏览器重新加载网页时, 上没有correcto_obligatorio参数$_POST。我使用var_dumpphp 函数打印它,我得到的只是NULL


白衣非少年
浏览 175回答 2
2回答

慕标5832272

$.post 是一个单独的异步请求。window.location.reload 只是重新加载页面,但不会考虑所有异步请求。如果您不使用 打印 $_POST['correcto_obligatorio'] var_dump,而是登录到文件,您将在那里看到该值。有两种解决方案适合您。1)等待ajax结果并响应。$.post( "index.php", {&nbsp;&nbsp; correcto_obligatorio: true&nbsp;}, function (data) {&nbsp; if (data.passed_validation) {&nbsp; &nbsp; window.location.reload("index.php")&nbsp; }});2) 其次是张贴表格<form action="/index.php" method="POST" id="my_form">&nbsp; <input type="hidden" name="correcto_obligatorio" value="1"/></form><script>&nbsp; function myFunc() {&nbsp; &nbsp; &nbsp;$("#my_form").submit()&nbsp; }</script>最常见和正确的方法是第一种解决方案。

繁华开满天机

您的代码不会等待帖子完成。您基本上发送请求并将浏览器重定向到 index.php,而无需等待服务器回复您。考虑使用回调函数:$.post( "index.php",&nbsp; {&nbsp;&nbsp; correcto_obligatorio: true}, function( result) {&nbsp; &nbsp; if (result.passed) {&nbsp; &nbsp; &nbsp; &nbsp; window.location.reload("index.php")&nbsp; &nbsp; }});假设服务器使用包含传递的参数的有效 json 对象进行响应(内容类型应设置为 application/json )
打开App,查看更多内容
随时随地看视频慕课网APP