0

我正在尝试使用 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 bad gateway 错误。我相信错误是在当前 Vercel 服务器中发出另一个 HTTP 请求。我不确定如何做到这一点。

任何提示将非常感谢!

4

1 回答 1

0

使用 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 }
    );
于 2020-08-30T14:51:10.520 回答