【问题标题】:Send XML data to server using jQuery $.post使用 jQuery $.post 将 XML 数据发送到服务器
【发布时间】:2012-12-29 14:22:57
【问题描述】:

我正在浏览其他问题和帖子,但找不到答案。

我需要将数据发送到 PHP 文件,该文件将数据保存到服务器。一些数据只是字符串变量,其中一个变量是 XML 数据。我尝试使用以下代码:

$.post(
    "save.php",
    { 
        userId: _UserId, 
        pName: _pName, 
        pId: _pId, 
        xml: $(_xml).find("main").text()
    },
    function () { 
        console.log("Saved"); 
    }
);

所以_xml 是一个 XML 文档,我正在尝试将整个 XML 保存在服务器中。 POST 有效,但问题是它只保存文本,没有 <> 括号。

如何正确地将 XML 数据发送到服务器?任何帮助将不胜感激。

【问题讨论】:

    标签: php javascript jquery xml


    【解决方案1】:

    POST 有效,但问题是它只保存文本,没有 括号。

    尝试改用html()。我知道在这种情况下名称可能不正确,但底层方法不会删除当前包含的元素。

    xml: $(_xml).find("main").html()
    

    【讨论】:

    • _xml 不需要是 DOM 元素才能工作,也不需要包含有效的 HTML。为什么它不起作用?
    【解决方案2】:

    试试这个方法:

    $.ajax({
    type : "POST",
    url : "Save.php",
    data : {
        method : "Save",
        userId: _UserId, 
        pName: _pName, 
        pId: _pId, 
        xml: escape(xmlString)
    },
    dataType : "json",
    cache : false,
    success : function(data) {
    // Process return status data here
    }
    });
    

    注意:您需要在服务器端解码xml字符串。

    【讨论】:

    • 谢谢,但是如何将其余变量添加到您的函数中? (userId, pName, pId)
    • 我已经修改了sn-p。请看一看。
    • 在尝试您的答案之前,我可以使用此功能发布带括号的 XML:function XmlSerialize(xml) { var s; if (typeof XMLSerializer === "function") { var x = new XMLSerializer(); s = x.serializeToString(xml); } else { s = xml.xml; } return s }
    • 我现在有其他问题:读取时从服务器返回的XML字符串不完整并在中间截断。某处有长度限制吗?在 JS、PHP 还是 mySql 中?
    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多