【发布时间】:2022-01-04 13:57:41
【问题描述】:
我正在尝试构建一个 Excel 加载项,它使用 AJAX 根据内容从另一台服务器获取数据。我创建了以下简单的原型,它进行简单的 get 调用并将结果写入单元格。 AJAX 调用尚未使用 Excel 的内容,但将来会用到。
Excel.run(function (context) {
let sourceRange = context.workbook.getSelectedRange().load("values, rowCount, columnCount");
return context.sync()
.then(function() {
return $.ajax("https://localhost:44381/");
})
.then(function (data, status) {
let values = [[ "Result:" + data + status ]];
sourceRange.values = values;
})
.then(context.sync);
}).catch(errorHandler);
一切似乎都正常,除了状态,它总是未定义的。这很奇怪,因为数据是正确的。我已经在 context.sync() 承诺链之外尝试过它,它工作得非常好。状态应该是“成功”,并且它与then(function(data, status)... 在类似这样的承诺链中工作。我已经用下面的代码试过了:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax("https://localhost:44381/")
.then(function(data, status){
alert(data + status);
})
.then(function() {
return $.ajax("https://localhost:44381/");
})
.then(function(data, status){
alert(data + status);
});
});
});
</script>
</head>
<body>
<button>Send an HTTP GET request to a page and get the result back</button>
</body>
</html>
为什么它没有收到状态?我该如何解决?
【问题讨论】:
-
您能否从您的代码中创建一个Script Lab 要点并在您的问题中添加指向要点的链接?另外,
https://localhost:44381/的文件的文件类型和文件内容是什么?