AJAX代码如下:type:'POST',
url:'../php/a.php?ID='+'abc',
success: function(data)
{
    alert(data);
}PHP代码如下:echo $_GET['ID'];为什么js文件能弹出显示‘abc'的对话框,PHP页面却什么也没有呢?

解决方案 »

  1.   

    什么“什么也没有”? 你怎么访问的。url上带ID了吗?
      

  2.   

    带了啊,我用FireFox的Web控制台,url中有ID。
      

  3.   

    不可能。既然ajax都能获取到。说明php返回了值。/a.php?ID=33 是这样访问的吗?
      

  4.   

    是的。但是在a.php中用var_dump($_GET['ID']);则显示为null
      

  5.   

    更奇怪的是,如果a.php上用的是var_dump($_GET['ID']);的话,js弹出的对话框中就会显示一个pre标签,ID的值就在这个pre标签里。
      

  6.   


    ajax.html<!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <style>

    </style>
    </head>
    <body>

    <script>
    $.ajax({
    type:'POST',
    url:'index.php?ID='+'abc',
    success: function(data)
    {
    alert(data);
    }
    })
    </script>
    </body>
    </html>index.php
    <?
    var_dump($_GET['ID']);
    ?>返回的
    string(3) "abc"
      

  7.   

    我完全引用,结果还是null。难道是我本机的配置有问题???
      

  8.   

    要不楼主试着给GET参数加个随机数,是不是被浏览器缓存了.
      

  9.   

    噢噢,是POST上去的GET参数,不是缓存问题.
      

  10.   

    当然能啊,我的整个Web系统都有PHP。我很奇怪为什么会有一个pre标签。
      

  11.   

    不知道楼上为什么认为post要比get安全?而关键问题没谈到。服务器安全要在服务器端做足,而不是依赖客户端,特别是b/s架构的系统。
      

  12.   

    估计是ie浏览器的缓存问题,修改js代码后,要清一下浏览器缓存
      

  13.   

    你确定在你跳转到PHP页面时,参数已经穿过来了吗?
      

  14.   

    啊啊,<a href="#" class="graph" id="<?php  echo $row['ID'];?> "onClick="window.open('../php/day.php','','height=600,width=1000');">每天</a>原来我在点击“每天的时候”,在弹出来的窗口中参数还没有传过来。谢谢各位。