我在 OFFICEjs 中开发了一个应用程序。全部都在LOCALHOST中工作。 上周,该程序可以完美地将数据发送到服务器并从中取回数据。星期一,我启动了该程序,并收到以下错误:
XHR错误。
在周末期间,我没有触摸代码,所以我不明白在这之间发生了什么,因为现在没有HTTP请求发送到服务器,POST和GET都没有。
当我将URL放入浏览器时,我从服务器获得了正确的答案,因此服务器可以正常工作。唯一的问题是与客户端一起,甚至不再触发https请求!可能在周末期间发生了什么,导致程序中的通讯出现问题。。请提供帮助,因为到目前为止我花了2天的时间试图找到问题,但没有成功。 您应该注意到,即使在现在或直到现在的任何时候,如果在浏览器中输入相同的URL,数据也将毫无问题地返回浏览器。
现在我注意到了一些新东西。我删除了对函数https_Last_Order_Number()的调用,而是在send函数内部进行了https常规调用。结果一无所获。我没有收到任何错误,但是请求根本没有被解雇! 这与我以前做过的https调用相同,并且可以正常工作,但现在根本不触发
async https_Last_Order_Number(){return new Promise((resolve, reject) => {
const options = {
hostname: 'localhost',
port: 8888,
path: '/getLastIdOrder',
method: 'GET'
}
const req = https.request(options,
(res) => {
let body = '';
res.on('data', (chunk) => (body += chunk.toString()));
res.on('error', reject);
res.on('end', () => {
if (res.statusCode >= 200 && res.statusCode <= 299) {
resolve({statusCode: res.statusCode, headers: res.headers, body: body});
} else {
reject('Request failed. status: ' + res.statusCode + ', body: ' + body);
}
});
});
req.on('error', reject);
req.end();
});
}
async send() {
try {
await Excel.run( async context => {
var currentWorksheet = context.workbook.worksheets.getActiveWorksheet();
var range3 = currentWorksheet.getRange("H14");
var tmpAcc = ""; //hold current acc to check.
var check = 1; //suppose no problem at begining.
var numAccRows = 0;
//var numDuplicate=0;
//const rankingRange = this.table.columns.getItem("Quantity").getDataBodyRange().load("values");
let Last_Order_number // Last order Id, returned as String.
let Last_Order_num // Last order Id, as INT.
await this.https_Last_Order_Number().then(function(results){
Last_Order_number = results['body']
Last_Order_num = parseInt(Last_Order_number) + 1
return context.sync()
.then(function () {
for (let i = 0; i < 50; i++) { // for each acc, check for duplicate.
if (accountRange.values[i][0] === "" || check == 0){
break;
}
numAccRows = numAccRows + 1; // count number of rows.
tmpAcc = accountRange.values[i][0];
for (let j = i+1; j < 50; j++){
if (accountRange.values[j][0] === "" ){ //if row empty, means this is no more accounts in this column, thus break.
break;
}
if (tmpAcc == accountRange.values[j][0]){ //if the acc is duplicated, break.
check=0;
//numDuplicate=numDuplicate+1;
//let tmpCell="k"+j;
//let range4 = currentWorksheet.getRange(tmpCell);
//range4.values = [[tmpAcc]];
break;
}
}
}
}
}
});
}).catch(err => {
range3.values =[[900]]
OfficeHelpers.UI.notify(err);
OfficeHelpers.Utilities.log(err);
});
});
} catch (error) {
OfficeHelpers.UI.notify(error);
OfficeHelpers.Utilities.log(error);
}
}
答案 0 :(得分:1)
问题在于证书只是过期了...仅有效了一个月