jquery - 在 div 中显示从服务器收到的 XML 错误

标签 jquery ajax web-services client client-server

我有一个 Web 服务,我可以从中接收 XML 响应。在 jQuery 中,我有以下内容,用于获取某本书:

function getBookByIsbn() {

if($("#getAndDeleteIsbn").val() == '')
{
    alert("Please provide the ISBN");
    return false;
}
$.ajax({
    dataType: 'xml',
    type: 'GET',
    url: 'http://localhost:8080/library/books/' + $("#getAndDeleteIsbn").val(),
    success: function (data) {
        var string;
        if (window.ActiveXObject){
            string = data.xml;
        }
        else
        {
            string = (new XMLSerializer()).serializeToString(data);
        }
            $("#messageBox").text(string);
    },
    error: function (xhr, status, thrownError) {
        var string;
        if (window.ActiveXObject){
            string = thrownError.xml;
        }
        else
        {
            string = (new XMLSerializer()).serializeToString(thrownError);

        }
            $("#messageBox").text(string);
  }
});
}

现在,当请求成功时,会显示消息,但是当我收到错误时,不会显示内容。我做错了什么?

编辑:有人建议我在控制台中打印所有三个参数,所以我发现实际上 xhr 参数包含我需要的内容。 现在的问题是,如果我尝试创建一个警报(xhr.responseText),警报窗口包含所需的消息,但如果我想在 div 内显示相同的内容,则什么也不会发生,而我希望它显示在那里。

最佳答案

问题是我尝试将字符串序列化为字符串,因为 xhr.responseText 是一个字符串。为了解决这个问题,应该使用xhr.responseXML,而不是xhr.responseText。 这是代码:

function getBookByIsbn() {


if($("#getAndDeleteIsbn").val() == '')
{
    alert("Please provide the ISBN");
    return false;
}
$.ajax({
    dataType: 'xml',
    type: 'GET',
    url: 'http://localhost:8080/library/books/' + $("#getAndDeleteIsbn").val(),
    success: function (data) {
        var string;
        if (window.ActiveXObject){
            string = data.xml;
        }
        else
        {
            string = (new XMLSerializer()).serializeToString(data);
        }
            $("#messageBox").text(string);
    },
    error: function (xhr, status, thrownError) {
        var string;
        if (window.ActiveXObject){
            string = xhr.responseXML.xml;
        }
        else
        {
            string = (new XMLSerializer()).serializeToString(xhr.responseXML);

        }
            $("#messageBox").text(string);
  }
});
}

关于jquery - 在 div 中显示从服务器收到的 XML 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13703603/

相关文章:

jquery:如果鼠标位于元素上方,则删除初始页面加载时的悬停

php - 获取 GMail、Yahoo、Hotmail 等联系人

java - 在 cxf 中公开 json 数组时出现异常

javascript - 自定义聊天框颜色

javascript - 使用按钮动态添加输入字段,而无需在唯一字段上删除按钮

javascript - 等待元素显示给用户

javascript - 在 Google Chrome 上同时挂起异步和同步请求

javascript - Ajax.beginform回调属性,无法理解差异

javascript - 如何在ajax成功函数中为实例变量赋值

java - 在网络服务调用中使用用户名和密码