如何在 Azure Function App 中做 XHR

How to do XHR in Azure Function App

我想触发一个 http API 并处理它的响应,但我收到以下错误:

执行函数时出现异常:Functions.getAccessObject。 mscorlib:ReferenceError:未定义 XMLHttpRequest

这是我的 Azure 无服务器函数代码:

module.exports = function (context, req) {

function getAccessObject(context, successCallback, failureCallback) {
    var APPLICATION_ID = "zzz";
    var APPLICATION_SECRET = "zzz";
    var REFRESH_TOKEN = "zzz";

    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;

    xhr.open("GET", "https://xyz");
    xhr.setRequestHeader("applicationid", APPLICATION_ID);
    xhr.setRequestHeader("applicationsecret", APPLICATION_SECRET);
    xhr.setRequestHeader("refreshtoken", REFRESH_TOKEN);
    xhr.setRequestHeader("cache-control", "no-cache");

    xhr.onreadystatechange = function() {
        if (request.readyState === 4) {
            if (request.status === 200) {
                successCallback(context, request.responseText);
            } else {
                failureCallback(context, request.responseText);
            }
        }
    };
    request.send(null);

}
getAccessObject(context, registerForWebhookFunc, failureCallbackFunc);
}

我认为 XHR 是一种浏览器 API 而不是 node.js 的原生浏览器。您可以使用 node.js 的内置 http 功能(参见下面的示例)或者其他流行的包可用,例如可以执行 http 请求的 Axios。我相信如果您打算使用 XHR,甚至可能会有一个。

const https = require('https');

https.get('http://myapi', (resp) => {
   let data = '';

   resp.on('data', (chunk) => {
     data += chunk;
   });

   resp.on('end', () => {
      console.log(JSON.parse(data));
    });

   }).on("error", (err) => {
      console.log("Error: " + err.message);
   });
 }