我正在尝试使用Vercel来查询其他API。我能够让Vercel服务器接收查询并返回适当的值。我也能够毫不费力地从另一个js文件制作XMLHttpRequest。当我尝试将XMLHTTPRequest插入到我的Vercel服务器中时,问题出现了。
module.exports = (req, res) => {
const { name = "World" } = req.query;
var newReq = new XMLHttpRequest();
newReq.open("GET", url);
newReq.setRequestHeader("Authorization", authKey);
newReq.send();
newReq.addEventListener("load", function () {
if (newReq.status == 200 && newReq.readyState == 4) {
var response = JSON.parse(newReq.responseText);
result = `
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%">
<text x="0" y="15" fill="red">${response}</text>
</svg>`;
res.writeHead(200, { "Content-Type": "image/svg+xml" });
res.write(result);
res.end();
}
});
};现在,每当我尝试访问服务器时,都会收到502错误的网关错误。我认为错误是因为在当前的Vercel服务器中发出了另一个HTTP请求。我不确定如何实现这一点。
任何建议都将不胜感激!
发布于 2020-08-30 22:51:11
使用http和node-fetch解决。以防其他人在将来遇到类似的问题。
const http = require("http");
const url = require("url");
const fetch = require("node-fetch");
http
.createServer(async (req, res) => {
const reqURL = url.parse(req.url, true);
const { userID } = reqURL.query;
var headers = { Authorization: "..." };
const newResponse = await fetch(
`newURL`,
{ method: "GET", headers: headers }
);https://stackoverflow.com/questions/63653348
复制相似问题