10

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

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

我确定数组数据有一个名为的值,responseText因为控制台告诉我,当我让我的代码记录数据时。但是,当我尝试 log 时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

4

3 回答 3

10

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

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

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

于 2012-11-08T22:44:00.733 回答
4

如果您只想显示文本格式的响应,您可以简单地做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://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea cols="60" rows="10"></textarea>

于 2018-05-11T06:02:00.403 回答
1

尝试使用 data.responseText[0] 而不是 data.responseText。

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

于 2012-11-08T22:33:05.860 回答