代码之家  ›  专栏  ›  技术社区  ›  screenshot345

如何用PHP接收XMLHttpRequest?

  •  3
  • screenshot345  · 技术社区  · 16 年前

    当试图在PHP页面上打印POST数组时,我没有得到任何输出。

    编辑:下面是我的代码

    <html>
    <head>
    
    <SCRIPT type="text/javascript" src="prototype.js"></script>
    
    </head>
    <body>
    
    <script type="text/javascript">
    
    var xml='<?xml version=1.0 encoding=UTF-8?>';
    xml=xml+'<notification>';
    xml=xml+'heya there';
    xml=xml+'</notification>';
    xml=xml+'</xml>';
    
    
    var myAjax = new Ajax.Request('http://localhost:8080/post2.php',{
        contentType: 'text/xml',
        parameters: xml,
        method: 'post',
        onSuccess: function(transport){ alert(transport.status); alert(transport.responseText); }
    });
    
    </script>
    
    </body>
    </html>
    

    post2.php后

    Welcome <?php print_r($_POST); ?>!<br />
    
    4 回复  |  直到 14 年前
        1
  •  3
  •   chris12892    16 年前

    您将完全按照读取普通请求变量的方式来读取它。

    $_GET['varname'] $_POST['varname']

        2
  •  3
  •   Ramesh Tabarna    16 年前

    php://input允许您读取原始POST数据,如

    Welcome <?php print(file_get_contents('php://input')); ?>!<br />
    

    注意:对于enctype=“multipart/form data”,php://input不可用。

        3
  •  1
  •   2ndkauboy    16 年前

    var myAjax = new Ajax.Request('http://localhost:8080/post2.php',{
        contentType: 'text/xml',
        postBody: xml,
        method: 'post',
        onSuccess: function(transport){
            alert(transport.status); alert(transport.responseText);
        }
    });
    

    但为什么要围绕内容构建XML文档呢?您可以简单地用postBody发送消息“heya there”,而不使用XML around。

    编辑:在这里您可以找到所有Ajax。请求选项: http://www.prototypejs.org/api/ajax/options

        4
  •  1
  •   Syscall - leaving SO... Juhzuri    8 年前

    你可以用 fopen() input:// 包装器或 $HTTP_RAW_POST_DATA .