xsltforms 提交方法="post": 未知 XML 根元素
xsltforms submission method="post": Unknown XML root element
我在 exist-db 服务器上使用 XSLTforms,我试图用 method="post" 加载一个文件,但一点运气都没有。这是模型的示例:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<xf:model>
<xf:instance xmlns="" id="default">
<data>
<x>
<a></a>
<b></b>
<c></c>
</x>
</data>
</xf:instance>
<xf:submission id="read-from-file" method="post" replace="instance" instance="default">
<xf:resource value="'../data/test.xml'"></xf:resource>
</xf:submission>
</xf:model>
</head>
这是我要提交的 test.xml:
<data>
<x>
<a>test</a>
<b>test</b>
<c>test</c>
</x>
</data>
当我触发提交时,出现错误:
xsltforms.js:8115 POST ../data/test.xml 400 (Unknown XML root element: data)
如果改用 "get" 方法,一切都很好,只要文件足够小 - 如果我尝试使用 method="get" 加载更大的文件,最初它会被加载,但是加载一次并尝试重新加载后,出现错误“414(请求 URI 太长)”。我搜索了一个答案,建议是在这种情况下正确的方法是使用 "post"。我是 xforms 的新手,显然我做错了什么,所以我需要帮助才能完成这项工作......
提前致谢!
在处理提交问题时,使用浏览器调试器检查发送的内容和接收的内容很有趣。
GET 方法显然是用于获取文件内容的方法,而 PUT 和 POST 用于将内容推送到文件中。
默认情况下,默认实例被序列化为GET参数。我认为这是 URI 太长警报的原因。由于您只想获取文件内容,请将 "serialization" 属性设置为 "none" 再试一次好吗?
我在 exist-db 服务器上使用 XSLTforms,我试图用 method="post" 加载一个文件,但一点运气都没有。这是模型的示例:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<xf:model>
<xf:instance xmlns="" id="default">
<data>
<x>
<a></a>
<b></b>
<c></c>
</x>
</data>
</xf:instance>
<xf:submission id="read-from-file" method="post" replace="instance" instance="default">
<xf:resource value="'../data/test.xml'"></xf:resource>
</xf:submission>
</xf:model>
</head>
这是我要提交的 test.xml:
<data>
<x>
<a>test</a>
<b>test</b>
<c>test</c>
</x>
</data>
当我触发提交时,出现错误:
xsltforms.js:8115 POST ../data/test.xml 400 (Unknown XML root element: data)
如果改用 "get" 方法,一切都很好,只要文件足够小 - 如果我尝试使用 method="get" 加载更大的文件,最初它会被加载,但是加载一次并尝试重新加载后,出现错误“414(请求 URI 太长)”。我搜索了一个答案,建议是在这种情况下正确的方法是使用 "post"。我是 xforms 的新手,显然我做错了什么,所以我需要帮助才能完成这项工作...... 提前致谢!
在处理提交问题时,使用浏览器调试器检查发送的内容和接收的内容很有趣。
GET 方法显然是用于获取文件内容的方法,而 PUT 和 POST 用于将内容推送到文件中。
默认情况下,默认实例被序列化为GET参数。我认为这是 URI 太长警报的原因。由于您只想获取文件内容,请将 "serialization" 属性设置为 "none" 再试一次好吗?