如何在 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);
});
}
我想触发一个 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);
});
}