2016-03-28 14 views
1

Varolan-db sunucusunda XSLTforms kullanıyorum ve hiç bir şansla method = "post" ile bir dosya yüklemeye çalışıyorum. Buradaxsltforms gönderme yöntemi = "post": Bilinmeyen XML kök öğesi

<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> 

Ve göndermeye çalışıyorum test.xml edilir: Burada modelin bir örnek ben teslim tetiklemek zaman

<data> 
    <x> 
    <a>test</a> 
    <b>test</b> 
    <c>test</c> 
    </x> 
</data> 

, ben olsun hatası:

xsltforms.js:8115 POST ../data/test.xml 400 (Unknown XML root element: data)

Bunun yerine "get" yöntemi kullanılırsa, dosya yeterince küçük olduğu sürece her şey harika çalışır; eğer method = "get" ile daha büyük bir dosya yüklemeye çalışırsam başlangıçta yüklüdür, ancak bir kez yüklendikten sonra yeniden yüklemek için "414 (hata) alıyorum İstek-URI Çok Uzun) ". Ben bir cevap arandı ve tavsiye bu durumda doğru yol "post" kullanmaktır. Ben xforms yeni ve tabii ki yanlış bir şey yapmak, bu yüzden bu iş yapmak için yardıma ihtiyacım var ... Teşekkür peşin!

cevap

2

Gönderme sorunları ile uğraşırken, yalnızca nelerin gönderildiğini ve nelerin alındığını kontrol etmek için tarayıcı hata ayıklayıcısını kullanmak ilginçtir.

GET yöntemi, bir dosya içeriği almak için açıkça kullanılırken, GET ve POST içeriği bir dosyaya itmek için kullanılır.

Varsayılan olarak, varsayılan örnek GET parametreleri olarak serileştirilir. URI'nin çok uzun uyarı sebebi olduğunu düşünüyorum. Sadece bir dosya içeriği almak istediğinizden, "serialization" özelliği "none" olarak ayarlanmış olarak tekrar deneyebilir misiniz?

+0

Çok teşekkür ederim! Günümü kurtardın :) Ve evet - Firebug ve Chrome DevTools'daki davranışı kontrol ettiğim ilk şeydi ... Uzun URI'yi gördüm, ama ondan nasıl kurtulacağımı bilmiyordum. GET parametreleri olarak serileştirilmiştir. İlk önce, teslim edilmeden önce tüm öğeleri silerek geçici bir çözüm sağladım, ancak dosya boyutu arttığında, çalışmayı durdurdu. Şimdilik seri hale getirme = "hiç" işi yapıyor gibi görünüyor. Umarım bu konuda sizi rahatsız etmenize gerek kalmaz. – nassoo