使用PHP表单的XML Post工作,jQuery .ajax没有

时间:2015-04-09 20:45:57

标签: php jquery

我有一个非常简单的PHP表单,它将XML数据发布到URL,然后URL响应更多的XML。这是:

form action="[...]" method="POST">

        <textarea name="xml" rows="30" cols="100">
            <RRequest version = '2.13'>
                <Request>
                    <Command>update</Command>
                    <Pd>
                        <RID>1</RID>
                        <ExtID>111111111</ExtID>
                    </Pd>
                </Request>
            </RRequest>

        </textarea>
        <br>
        <input value="Submit Request" type="submit">

    </form>

这很好用。我试图实现相同的东西,但使用jQuery。这是代码:

        <script>

        $(document).ready(function() {

            $("#submit").click(function(){

                var xml_data = $("#xml").val();

                $.ajax({
                    type: "POST", 
                    url: "[...]", 
                    data: xml_data,
                    contentType: "text/xml",
                    dataType: "text",
                    cache: false,
                    success: function(data){
                        $("#xml").val("");
                        $("#xml").val(data);
                    },
                    error: function(xhr, textStatus, errorThrown){
                        alert("it no works");
                    }
                });

            });

        });

    </script>

</head>

<body>

        <textarea id="xml" rows="30" cols="100">
            <RRequest version = '2.13'>
                <Request>
                    <Command>update</Command>
                    <Pd>
                        <RID>1</RID>
                        <ExtID>111111111</ExtID>
                    </Pd>
                </Request>
            </RRequest>

        </textarea>
        <br>
        <input type="button" id="submit" />

然而,这不起作用。它确实与服务器联系,但服务器返回错误的请求消息,这使我认为发送的数据不正确。包含XML的两个textareas是相同的。任何帮助将不胜感激。

我正在使用jQuery 2.1.3。

1 个答案:

答案 0 :(得分:1)

替换此行

  var xml_data = $("#xml").val();

  var xml_data = {xml: $("#xml").val() };

UPD: 应从.ajax()请求中删除这些参数:

  contentType: "text/xml",
  dataType: "text",