2016-03-28 9 views
1

私はexist-dbサーバーでXSLTformsを使用していますが、メソッド= "post"を含むファイルをロードしようとしています。ここではモデルの例である:xsltforms submission method = "post":不明なXMLルート要素

<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が長すぎます)」私は答えを探しました。この場合、正しい方法は "投稿"を使うことです。私はxformsで新しく、明らかに私は何か間違っているので、私はこの仕事をするために助けが必要です... ありがとうございます!

答えて

2

投稿の問題を扱う際には、ブラウザのデバッガを使用して、送信された内容と受信された内容を確認するだけです。

明らかにGETメソッドはファイルコンテンツを取得するために使用され、PUTとPOSTはコンテンツをファイルにプッシュするために使用されます。

デフォルトでは、デフォルトインスタンスはGETパラメータとしてシリアル化されています。私はこれがURIの長すぎる警告の理由だと思います。ファイルコンテンツを取得したいだけなので、 "serialization"属性を "none"に設定してもう一度お試しください。

+0

ありがとうございました!あなたは私の一日を保存しました:)そしてはい - FirebugとChrome DevToolsの動作を確認することが私が試した最初のことでした...私は長いURIを見ましたが、それを取り除く方法とインスタンスGETパラメータとしてシリアライズされます。まず、提出する前にすべての要素を削除することを回避することに成功しましたが、ファイルサイズが増加したときには機能しなくなりました。今のところそれはシリアライゼーション= "none"と思われます。私はこの問題であなたにもう一度お悔やむ必要がないことを願っています。 – nassoo

関連する問題