2015-11-07 6 views
7

Wenn ich versuche, eine Ajax-Abfrage mit dataType von' text/xml; charset = utf-8 '... Ich bekomme einen Parserfehler.Ajax-Abfrage funktioniert mit dataType: 'text' schlägt fehl mit dataType: 'text/xml; charset = utf-8 '

  1. die XML-Antwort gültig ist xml
  2. Die Antwort-Header einen Content-Type von ‚text/xml zeigt; charset = utf-8 '.
  3. Es ist kein Cross-Domain-Anfrage

Diese drei Probleme Antworten auf Fragen in anderen ParserError waren.

Meine Ajax sieht wie folgt aus:

 $('#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)); 
       } 
      }); 
     }); 

Und die Antwort ist:

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

Es ist toll, dass der 'Text' Anfrage funktioniert ... aber es wäre schön, Ajax zu lassen analysieren das XML für mich. Irgendwelche Ideen, wie man das zum Laufen bringt?

Antwort

4

Blick auf http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings - DataType "Xml" wird unterstützt.

Ändern Sie Ihre Anfrage an folgende sollte Ihnen erwartete Ergebnis:

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

Seltsam wie so viele Proben haben 'Text/Xml' ... aber 'Xml' an sich funktioniert ... Danke! –

1

Sie auch die XML-Antwort zu analysieren haben mit so etwas wie $ .parseXML (Daten) oder eine XMLSerializer es als String zu verarbeiten. Ich denke, das ist noch wichtiger, daher sollte die Antwort dataType automatisch durch den MIME-Typ bestimmt werden.

Verwandte Themen