使用jqueryajax和获取XML
我正在尝试使用Google电子表格的API从中获取XML,如下所示: 在协议选项卡下。我可以使用Postman并返回XML,但现在我正在使用JQuery进行尝试,它似乎不起作用。它之所以成功,是因为我在success函数中添加了警报,并且它们显示为请求成功,但我尝试访问XML的每个方法都返回了使用jqueryajax和获取XML,jquery,ajax,xml,google-spreadsheet-api,Jquery,Ajax,Xml,Google Spreadsheet Api,我正在尝试使用Google电子表格的API从中获取XML,如下所示: 在协议选项卡下。我可以使用Postman并返回XML,但现在我正在使用JQuery进行尝试,它似乎不起作用。它之所以成功,是因为我在success函数中添加了警报,并且它们显示为请求成功,但我尝试访问XML的每个方法都返回了null或undefined。以下是我的AJAX请求: var xml1; $.ajax({type: "GET", url: "https://spreadsheets.google.c
null
或undefined
。以下是我的AJAX请求:
var xml1;
$.ajax({type: "GET",
url: "https://spreadsheets.google.com/feeds/cells/" + key + "/" + sheetID + "/private/full?min-row=1&min-col=1&max-row=1",
dataType: "xml",
contentType: "application/atom+xml",
cache: false,
async: true,
crossDomain: true,
success: function(result) {xml1 = result;}})
我把它放在一个
$中。当()
完成时,我会提醒xml1
的值,它是null
或未定义的
。我是否没有正确访问结果,或者这里是否存在其他问题?xml1应该在该函数之前定义,如果您希望在该函数之外访问它
var xml1;
$.ajax({type: "GET",
url: "https://spreadsheets.google.com/feeds/cells/" + key + "/" + sheetID + "/private/full?min-row=1&min-col=1&max-row=1",
dataType: "xml",
contentType: "application/atom+xml",
cache: false,
async: true,
crossDomain: true,
success: function(result) {xml1 = result;}
})
console.log(xml1);
你能提供更多的代码吗?比如在哪里声明变量以及如何检查数据?它不起作用的原因与我的另一个问题类似
原因是您需要一个访问令牌来执行对电子表格的HTTP请求。我已经读到,邮递员可以通过某种方式解决这个问题,这就是为什么相同的请求在移动设备上不起作用。您可以通过将datatType临时设置为“text”来检查确切的返回字符串吗?这可能有助于调试情况。我刚刚试过。它在警报中没有显示任何内容,因此我假设它是一个空长度字符串。如果手动打开url,会发生同样的情况吗?手动打开url是什么意思?我用Postman试过了,效果很好,url应该是正确的,我在这段代码之外有提示,显示了密钥和sheetID。好吧,在不使用contentType的情况下试一下。如果它仍然不起作用,请查看浏览器中的开发者控制台,也许它可以为您提供详细信息,我在它之外声明了这一点。我只是没有表现出来。