我正在尝试从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
答案 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>