2015-11-07 9 views
7

' Metin/xml'nin dataType ile bir Ajax sorgusu yapmaya çalıştığımda; charset = utf-8 '... Bir çözümleyici alıyorum.Ajax sorgusu dataType ile çalışır: 'text' dataType ile başarısız: 'text/xml; charset = utf-8 '

  1. xml yanıt yanıt başlığını 'text/xml bir Content-Type gösterir geçerli xml
  2. olduğu; charset = utf-8 '.
  3. O

Bu üç sorun diğer parsererror sorular cevaplar vardı çapraz alanı isteğinin değil.

 $('#submitLogin2').click(function (e) { 
      e.preventDefault(); 
      var formData = $('#loginForm2').serialize(); 
      var url = 'http://somewhere.com/Api2.0/Session_Create.aspx'; 
      $.ajax({ 
       url: url, type: "POST", dataType: 'text/xml; charset=utf-8', 
       data: formData, contentType: 'application/x-www-form-urlencoded; charset=UTF-8', 
       success: function (data) { 
        $('#loginResult').html(data.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/ /g, '&nbsp;').replace(/\n/g, '<br />')); 
       }, 
       error: function (textStatus, errorThrown) { 
        alert(errorThrown); 
        alert(JSON.stringify(textStatus)); 
       } 
      }); 
     }); 

Ve yanıttır:

Benim ajax şöyle

<Response><Error code='0'>Invalid User Name or Password</Error></Response> 

O 'Metin' istek çalışır ... bu harika ama Ajax ayrıştırmak izin güzel olurdu benim için xml. Bunu nasıl çalıştıracağınıza dair herhangi bir fikir var mı?

cevap

4

http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings görüntüleniyor - dataType "xml" desteklenmektedir. Sen $ .parseXML (veri) veya XmlSerializer'ı gibi bir şeyle dize olarak işlemek mümkündür XML yanıtını ayrıştırmak da var

url: url, type: "POST", dataType: 'xml', 
+0

Ne kadar çok örnekte 'text/xml' var ... ama 'xml' kendi başına çalıştı ... Tuhaf! –

1

:

size vermelidir aşağıdaki sorgu sonucunu bekleniyor Değiştirme. Bunun daha da önemli olduğunu düşünüyorum, dolayısıyla dataType yanıtı otomatik olarak MIME tipi tarafından belirlenmelidir.

İlgili konular