lambda函数内部的ajax调用不起作用
我有一个lambda函数,我试图通过ajax调用调用一个外部服务,并返回结果,然后在lambda的返回函数中返回reult。这是我的密码:lambda函数内部的ajax调用不起作用,lambda,Lambda,我有一个lambda函数,我试图通过ajax调用调用一个外部服务,并返回结果,然后在lambda的返回函数中返回reult。这是我的密码: console.log('Loading function'); exports.handler = (event, context, callback) => { var token = event.authorizationToken; var http = require('https'); var url = "ht
console.log('Loading function');
exports.handler = (event, context, callback) => {
var token = event.authorizationToken;
var http = require('https');
var url = "https://jsonplaceholder.typicode.com/posts";
switch (token.toLowerCase()) {
case 'allow':
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
callback(null, generatePolicy('user', 'Allow', event.methodArn,xmlHttp.responseText[0].title));
}
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send(null);
break;
default:
callback("Error: Invalid token");
}
};
var generatePolicy = function(principalId, effect, resource,res) {
var authResponse = {};
authResponse.principalId = principalId;
if (effect && resource) {
var policyDocument = {};
policyDocument.Version = '2012-10-17'; // default version
policyDocument.Statement = [];
var statementOne = {};
statementOne.Action = 'execute-api:Invoke'; // default action
statementOne.Effect = effect;
statementOne.Resource = resource;
policyDocument.Statement[0] = statementOne;
authResponse.policyDocument = policyDocument;
}
// Can optionally return a context object of your choosing.
authResponse.context = {};
authResponse.context.stringKey = res;
return authResponse;
}
当我尝试上面的代码时,我得到以下错误:
ReferenceError: XMLHttpRequest is not defined
显然,lambda既不支持XMLHttpRequest,也不支持ajax。
有什么方法可以调用ajax并用lambda返回响应(最好是json?当然,lambda支持XMLHttpRequest!:) 您只需安装它:
npm i xmlhttprequest
然后将其导入lambda函数:
var XMLHttpRequest=require(“XMLHttpRequest”).XMLHttpRequest;
var xhr=new XMLHttpRequest();