使用Ajax的POST不起作用 - 为什么?

时间:2014-03-18 03:19:22

标签: php jquery ajax post whmcs

HTML

<div pid="14" class="buybutton">Buy</div>

的Javascript

     <script>
       $(document).ready(function() {
           $(".buybutton").click(function(){
               console.log("Clicked Button");
               var pid = $(this).attr("pid");
               console.log(pid,"= Product ID");
               $.post("/redirecttoproduct.php", {"pidofproduct": pid});
            });
       });
      </script>

控制台:

Clicked Button
14 = Product ID 

redirecttoproduct.php

<?php
    session_start();
    $_SESSION['redirectproductpid'] = $_POST['pidofproduct'];
?>

试图回应SESSION,没有任何显示

<?php
  $productpid = $_SESSION['redirectproductpid'];
  echo $productpid;
?>

没有出现任何想法?

2 个答案:

答案 0 :(得分:0)

您错过了此页面中的session_start();吗?使用session_start()时需要$_SESSION

<?php
  session_start();
  $productpid = $_SESSION['redirectproductpid'];
  echo $productpid;
?>

答案 1 :(得分:0)

我建议首先做一个回调函数来检查post请求是否成功提交,因为你的$ _SESSION变量没有返回任何值的原因之一是因为你的js代码没有发布任何值结果,没有数据被分配给你的$ _SESSION var,即:

$.post("/redirecttoproduct.php", {"pidofproduct": pid})
.done(function() {alert( "success" );})
.fail(function() {alert( "error" );});

如果您可以为您的$ .post请求提供绝对路径,例如您的网站目录,即:$.post("//yourwebsite.com/redirecttoproduct.php")可以显着避免此相对路径错误,那么会更方便确保你没有提交无法通过你的XSS过滤器的无效值(如果有的话),希望这会有所帮助,欢呼!