1

我在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(未知的 XML 根元素:数据)

如果改用“get”方法,只要文件足够小,一切都会很好 - 如果我尝试使用 method="get" 加载更大的文件,最初它会被加载,但在加载一次并尝试重新加载它之后,我收到错误“414(请求 URI 太长)”。我搜索了一个答案,建议在这种情况下正确的方法是使用“post”。我是 xforms 的新手,显然我做错了,所以我需要帮助才能完成这项工作......提前谢谢你!

4

1 回答 1

2

在处理提交问题时,有趣的是使用浏览器调试器来检查发送的内容和接收的内容。

GET 方法显然是用于获取文件内容的方法,而 PUT 和 POST 用于将内容推送到文件中。

默认情况下,默认实例被序列化为 GET 参数。我认为这是 URI 警报过长的原因。由于您只想获取文件内容,您能否将“序列化”属性设置为“无”再试一次?

于 2016-03-28T14:14:13.993 回答