@Markiv07

Здравствуйте нужна помощь по выставлении счёта киви Nodejs Express?

Здравствуйте вот проблема с которой борюсь уже несколько дней. Нужно при нажатии на кнопку через Fetch делать запрос на сервер киви через PUT и получать ответ в json формате. Вот в чём проблема, с клиентской стороны, если я вызываю функцию в которой есть Fetch и там указан какой-то локальный путь на мой сервер то оно ловит и выводит ошибку(что потеряно соединение) и в командной строке появляется такое602b14ac3963c539153353.png

А когда указываю путь на какой-то другой сайт то мне выскакивают ошибки связанные с CORS хотя все заголовки вроде указываю

Вот клиентская часть кода
document.querySelectorAll('.payments').forEach(function(element){
  element.onclick = createPayment;
});

function createPayment() {
  fetch('/cr',{
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer wX1FRSbE6iyCj2gCRwwF3Dnh5XrasNTx3BGPiMsyXQFNKQhvukniQG8RTVhYm3iPwPhF1aV7hgCHTZbGec4giFGqmsEEVhPUjQ53RCTCTPZZSiJjWpK2yxxfQtUV8gg124j6t5xuC21LcuAvM25dLFy1x2cPKbA4QYTdqUfzK',
    'Accept': 'application/json',
    'Content-Type' : 'application/json',
  }
}).then(response => response.json()).then(response => console.log(response)).catch(err => {
        console.log("Error: " + err)
    })
}


Вот серверная часть кода
app.put('/cr' ,async function (req,res,next) {
  res.header("Access-Control-Allow-Origin", "http://localhost:3000"); // restrict it to the required domain
  res.header("Access-Control-Allow-Methods", "PUT");
  res.header("Access-Control-Allow-Headers", "Content-type,Accept");
  if (req.method === "OPTIONS") {
        return res.status(200).end();
    }
  const data = await qiwi(); // получаем в data результат вызова qiwiApi.createBill
  console.log(data);
  let p = res.json(data);
  next(); // т.к. функция асинхронная, вызываем next, чтобы объявить о завершении выполнения этого middleware
});


async function qiwi() {
  const billId = qiwiApi.generateId();

  const fields = {
      amount: 1.00,
      currency: 'RUB',
      comment: 'test',
      expirationDateTime: '2022-03-02T08:44:07',
      successUrl: 'http://test.ru/'
  };

  const data = await qiwiApi.createBill( billId, fields );
  console.log(data);
  // тут делаем что-то еще, если нужно
  return data; // возвращаем результат вызова qiwiApi.createBill
}


Помогите пожалуйста, как исправить и куда обращаться?
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы