Ajax查询与dataType一起使用:'text'失败,dataType:'text/xml; 字符集= UTF-8'

Bri*_*ice 8 xml ajax xml-parsing

当我尝试使用dataType为'text/xml进行Ajax查询时; charset = utf-8'......我得到了一个解析错误.

  1. xml响应是有效的xml
  2. 响应标题显示Content-Type为'text/xml; 字符集= UTF-8' .
  3. 这不是跨域请求

这三个问题是其他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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/ /g, '&nbsp;').replace(/\n/g, '<br />'));
                },
                error: function (textStatus, errorThrown) {
                    alert(errorThrown);
                    alert(JSON.stringify(textStatus));
                }
            });
        });
Run Code Online (Sandbox Code Playgroud)

响应是:

<Response><Error code='0'>Invalid User Name or Password</Error></Response>
Run Code Online (Sandbox Code Playgroud)

'text'请求很有用......但是让Ajax为我解析xml会很好.有关如何使其工作的任何想法?

小智 5

查看http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings - 支持dataType"xml".

将查询更改为以下内容应该会给您预期的结果:

url: url, type: "POST", dataType: 'xml',
Run Code Online (Sandbox Code Playgroud)