Создание XMLHttpRequest в Vercel

Я пытаюсь использовать Vercel для запроса других API. Я могу получить запрос на сервер Vercel и вернуть соответствующее значение. Я также могу без проблем создать XMLHttpRequest из другого файла js. Проблема возникает, когда я пытаюсь вставить 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 неверного шлюза. Я считаю, что ошибка связана с выполнением другого HTTP-запроса на текущем сервере Vercel. Я не знаю, как этого добиться.

Будем признательны за любые советы!

1 ответ

Решено с использованием 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 }
    );
Другие вопросы по тегам