JQuery ajax()获取xml响应文本

时间:2012-11-08 22:31:01

标签: javascript jquery html

我正在尝试从Gmail API中检索一些XML。到目前为止我有这个:

$.ajax({
    url: "https://mail.google.com/mail/feed/atom/",
    success: function(data) {
        console.log(data.responseText);
    }
});

我确定数组数据有一个名为responseText的值,因为当我获取我的代码来记录数据时,控制台告诉我。但是,当我尝试记录data.responseText时,它会记录数据并忽略我指定参数的事实(它没有说明没有定义responseText)。我做错了什么?

编辑:以下是控制台说data的屏幕截图:

编辑,回应凯文:我试过这个:

$.ajax({
    url: "https://mail.google.com/mail/feed/atom/",
    dataType: "xml",
    success: function(data) {
        console.log($("feed fullcount",data).html());
    }
});

它说“无法调用方法'替换未定义的”:o

3 个答案:

答案 0 :(得分:10)

data不是xhr对象,而是将xml字符串转换为XML Document。因此,除非xml doc具有responseText节点,否则它没有responseText属性。另外,如果您需要xml,请将dataType: "xml"添加到您的ajax选项中。

$.ajax({
    url: "https://mail.google.com/mail/feed/atom/",
    dataType: "xml",
    success: function(data) {
        console.log(data);
    }
});

编辑:现在我在你的问题中看到(编辑后)它实际上是一个xhr对象...这很奇怪......

答案 1 :(得分:1)

尝试使用data.responseText [0]代替data.responseText。

编辑:https://mail.google.com/mail/feed/atom/它要求我登录。

答案 2 :(得分:1)

如果您只想显示文本格式的响应, 你可以简单地做到

dataType: "text",

$.ajax({
  url: "https://miranda-zhang.github.io/cloud-computing-schema/v1.0/ontology.xml",
  dataType: "text",
  success: function(text) {
    $('textarea').val(text);
  },
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea cols="60" rows="10"></textarea>