当我尝试使用dataType为' text / xml进行Ajax查询时; charset = utf-8' ...我得到了一个解析错误。
这三个问题是其他parsererror问题的答案。
我的ajax看起来像这样:
$('#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, '&').replace(/</g, '<').replace(/>/g, '>').replace(/ /g, ' ').replace(/\n/g, '<br />'));
},
error: function (textStatus, errorThrown) {
alert(errorThrown);
alert(JSON.stringify(textStatus));
}
});
});
响应是:
<Response><Error code='0'>Invalid User Name or Password</Error></Response>
&#39;文本&#39;很棒。请求工作...但让Ajax为我解析xml会很高兴。关于如何使其发挥作用的任何想法?
答案 0 :(得分:5)
查看http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings - dataType&#34; xml&#34;得到支持。
将查询更改为以下内容应该会给您预期的结果:
url: url, type: "POST", dataType: 'xml',
答案 1 :(得分:1)
您还需要解析XML响应,将其作为字符串处理,例如$ .parseXML(data)或XMLSerializer。我认为这更重要,因此响应dataType应该由MIME类型自动确定。