本帖最后由 q236687213 于 2011-11-09 11:40:59 编辑

解决方案 »

  1.   

    PHP任务只负责输出.  JS执行之前, PHP已经执行跳转了. 
      

  2.   

    在js中,用同步方式,让xmlhttp请求完毕后再执行跳转。
    而不要让php来负责跳转。
      

  3.   

    不理解你的用意是什么,即使你输出了JS代码,对浏览器来说也就是一串文本,它没有嵌在<srcipt>标签中,浏览器是不会当成javascript来执行的。
      

  4.   

    代码错误了.加上标签也不能执行AJAX请求
      

  5.   

    变量声明也算是一句代码,var xmlhttp; var post="data=ok";
    你是想在发出ajax请求后跳转吧? 那么用JS实现吧,ajax请求中的xmlhttp.onreadystatechange事件吧<?php
    function test()
    {
        echo ' <script type="text/javascript">
        var xmlhttp;
                var post="data=ok";
                if(window.XMLHttpRequest)
                {
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.open("POST","email.php",true);
                function to_go_php()
                {
                     if( xmlhttp.readyState==4 ) // 请求发送成功
                        window.location.href="go.php";
                     else
                        document.write('出错了');
                }
                xmlhttp.onreadystatechange = to_go_php;
                xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xmlhttp.send(post);
        </script>
        ';
    }
    test();
    ?>异步请求是对客户端JS来说的
      

  6.   

    只要 header()前没有任何输出就成,随便你。
      

  7.   

    那你就让服务器去请求那个email.php吧,curl、file_get_contents还有socket什么的随意。只要header让客户端跳转了,那js代码是不会执行的。