首頁  >  文章  >  後端開發  >  javascript - php文件中执行print_r($_POST)时,显示Array(),为什么呢?

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

WBOY
WBOY原創
2016-06-06 20:13:131474瀏覽

<code> function createXML(){
                var xml = "<pets>";
                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);
            }</pets></code>

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

<code>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);
            }</code>

回复内容:

<code> function createXML(){
                var xml = "<pets>";
                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);
            }</pets></code>

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

<code>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);
            }</code>

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

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

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn