如何通过HTML表单将XML发布到服务器?

spi*_*tus 8 html xml forms jquery

我必须将我的HTML表单中的数据以xml格式发布到服务器,例如:

<some_parameters>
    <firstname>Homer</firstname>
    <lastname>Simpson</lastname>
    <street>74 Evergreen Tr.</street>
</some_parameters>
Run Code Online (Sandbox Code Playgroud)

我所知道的是它涉及在不同域上运行的CRM应用程序之一.现在我不确定最好的方法是什么.

我想在用户提交表单时只是在表单中包装字段的值.因此,如果用户在"firstname"字段中键入"Homer"并单击"提交",我的JS会将字段的值更改为<firstname>Homer</firstname>然后发布数据.

如果它有助于我在客户端使用jQuery.我认为必须有更好的方法,因为我的解决方案会破坏JS禁用并且看起来有点狡猾,所以如果你能指出我正确的方向,那将是非常棒的.

Dar*_*rov 9

在没有javascript或浏览器插件的情况下发布XML是不可能的.发布html表单的两种可能格式是application/x-www-form-urlencodedmultipart/form-data.


小智 6

我只是让它在chrome中工作,关键是在文本区域名称中有空格:

<html>
    <body>
        <form action="http://target_webservice" method="post">
            <textarea rows="20" cols="100" name=" ">
                <?xml version="1.0"?><requestElements><blah></blah></requestElements>
            </textarea>
            <input type="submit" value="Submit">
        </form>        
    </body>
</html> 
Run Code Online (Sandbox Code Playgroud)

  • 仍然发布为application/x-www-form-urlencoded (2认同)

Sam*_*son 3

我能想到的最好的方法是拦截表单提交操作,并将表单详细信息转换为 XML 格式,然后将其提交到服务器。有很多方法可以做到这一点,但最简单的方法是通过 jQuery 这样的框架来实现解决方案:

可以在http://www.docunext.com/...data-to-xml-with-jquery在线找到这方面的示例,它利用JSON 到 XML 插件

$("#myform").submit(function(){
  var formjson = $('#myform').serializeArray();
  var formxml = json2xml(formjson);
  $.post("/collect.php", { 'data': formxml }, function(data){ 
    // callback logic
  });
  return false;
});
Run Code Online (Sandbox Code Playgroud)