如何使用AJAX返回php会话变量?

时间:2018-10-24 18:01:54

标签: php json ajax

我已经浏览了很多其他文章,却不知道该怎么做。

AJAX:

$.ajax({
   type: 'POST',
   url: 'getSessionVariable.php',
   contentType: 'application/json',
   dataType: 'json',
   success: function(data) {
     alert(data);
   },
   error:function(data){
      alert("error occured"); //===Show Error Message====
      alert(data); 
   }
});

PHP:

<?
   session_start();
   print_r(json_encode($_SESSION["Variable"]));
?>

此解决方案返回“发生错误”

第二个Ajax语句:

jQuery.ajax({
  type:'POST',
  url: 'getSessionVariable.php',
  contentType: 'json',
  success:function(data){ 
    alert("Sucess!");
    alert(data);
    },
  error:function(data){
    alert("error occured"); //===Show Error Message====
   // alert(data); 
}
});

第二个AJAX解决方案成功运行,但返回了整个php页面,我只是在寻找要返回的会话变量...

2 个答案:

答案 0 :(得分:0)

那是因为我使用的是短标签。这次疏忽确实伤害了我,天哪!

<? 

而不是

<?php

答案 1 :(得分:0)

确保您使用的是正确的标签<?php ?>开瓶器

要使用<?= ?>代替<?php echo "myString"; ?> 您必须在php ini设置中更改您的short_open_tag。

从PHP文档中您可以找到:

  

版本7.0.0的ASP标签<%, %>, <%=,和脚本标签已从PHP中删除。

-

  

5.4.0不论short_open_tag ini设置如何,标记<?=始终可用。

将代码<?更改为<?php 并发送json_encode,您必须使用echo而不是print_r

    <?php
       session_start();
       echo json_encode($_SESSION["Variable"]);
    ?>