0

我尝试在线在 excel 中运行此功能,但似乎在获取时出现错误。我尝试了其他变体,有时我没有收到任何错误但没有响应文本。我是 typescript 的新手,但我已经成功地在 Python 中使用 requests 库和 VBA 完成了相同/相似的 GET 请求。要是能在 excel 在线中完成这件事就好了。userid 和 pwd 的标头是因为需要匿名身份验证。

async function main(workbook: ExcelScript.Workbook) {

const myHeaders = new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
'userid': 'UserID',
'pwd': 'Password'
});

const myRequest = new Request('URL', {
  method: 'GET',
  headers: myHeaders
});

const response = await fetch(myRequest)
console.log(response.text)
}

我也试过:

async function main(workbook: ExcelScript.Workbook) {
// Get the active worksheet.
let sheet = workbook.getActiveWorksheet();

// Display the current worksheet's name.
console.log(sheet.getName());

const myHeaders = new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
'userid': 'UserID',
'pwd': 'Password'
});

const myRequest = new Request('URL', {
  method: 'GET',
  headers: myHeaders
});

fetch(myRequest)
    .then(function(response) {
      return response.text();
}).then(function(text) { 
  console.log(text); 
});
}
4

1 回答 1

2

在我看来是对的。只是为了简单起见 - 你可以试试这个。它直接包含标题并添加 try..catch 以显示错误。

try { 
    const response = await fetch('url', {
        method: 'GET', 
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'userid': 'UserID',
            'pwd': 'Password'
        }
    });
} catch (e) {
    console.error('Error:', e);
} 

另一个方面可能与 CORS 要求有关。您可能还想检查一下。如果您请求的服务器不支持 CORS,您应该会在控制台中收到一个错误,指示由于缺少 CORS Access-Control-Allow-Origin 标头,跨域请求被阻止。

于 2021-01-07T01:34:32.367 回答