欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - php文件中执行print_r($_POST)时,显示Array(),为什么呢?

程序员文章站 2022-06-06 18:24:37
...
 function createXML(){
                var xml = "";
                var options = document.getElementById("petTypes").childNodes;
                var option = null;
                for(var i = 0;i " + option.value + "";
                    }
                }
                xml = xml + "";
                return xml;
            }
            
            function sendPetTypes(){
                createXMLHttpRequest();
                var xml = createXML();
                var url = "PostingXMLExample.php?timeStamp=" + new Date().getTime();
                
                xmlHttp.open("POST",url,true);
                xmlHttp.onreadystatechange = handleStateChange;
                xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
                xmlHttp.send(xml);
            }

php文件中执行print_r($_POST)时,显示Array(),当执行echo file_get_contents("php://input")时,显示内容,为什么呢?请大神赐教

function handleStateChange(){
                if(xmlHttp.readyState == 4){
                    if(xmlHttp.status == 200){
                        parseResults();
                    }
                }
            }
            
            function parseResults(){
                var responseDiv = document.getElementById("serverResponse");
                if(responseDiv.hasChildNodes()){
                    responseDiv.removeChild(responseDiv.childNodes[0]);
                }
                var responseText = document.createTextNode(xmlHttp.responseText);
                responseDiv.appendChild(responseText);
            }

回复内容:

 function createXML(){
                var xml = "";
                var options = document.getElementById("petTypes").childNodes;
                var option = null;
                for(var i = 0;i " + option.value + "";
                    }
                }
                xml = xml + "";
                return xml;
            }
            
            function sendPetTypes(){
                createXMLHttpRequest();
                var xml = createXML();
                var url = "PostingXMLExample.php?timeStamp=" + new Date().getTime();
                
                xmlHttp.open("POST",url,true);
                xmlHttp.onreadystatechange = handleStateChange;
                xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
                xmlHttp.send(xml);
            }

php文件中执行print_r($_POST)时,显示Array(),当执行echo file_get_contents("php://input")时,显示内容,为什么呢?请大神赐教

function handleStateChange(){
                if(xmlHttp.readyState == 4){
                    if(xmlHttp.status == 200){
                        parseResults();
                    }
                }
            }
            
            function parseResults(){
                var responseDiv = document.getElementById("serverResponse");
                if(responseDiv.hasChildNodes()){
                    responseDiv.removeChild(responseDiv.childNodes[0]);
                }
                var responseText = document.createTextNode(xmlHttp.responseText);
                responseDiv.appendChild(responseText);
            }

 xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 

看着好像是多了个; ???

因为在传递过来的时候,传递的是字符串,这个时候PHP帮你自动转成了数组,但是后面get_file_contents(php://input)这个是读取的原始数据流,这个时候就需要你自己进行转了。

相关标签: php javascript