如何解决在Vercel中制作XMLHttpRequest
我正在尝试使用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请求。我不确定如何做到这一点。
任何提示将不胜感激!
解决方法
使用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 }
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。