Ошибка 404 Not Found после миграции Parse

0 голос против избранное

Я следовал руководству по миграции и установил сервер Mongodb, NodeJS и Parse локально на нашем сервере Linux. Я могу использовать REST API для входа в игру и загрузки файлов, связанных с игрой, которые по-прежнему хранятся в Parse S3. Однако кажется, что всякий раз, когда я выполняю HTTP-запросы POST или PUT, я получаю ошибку 404 not found.

Пока что я пробовал:

  1. Включение интерфейса HTTP в /etc/mongod.conf

  2. Проверил URL-адреса сообщений, и они выглядят правильно. Для выхода из системы я отправляю почтовый запрос на http: /// parse / logout

  3. Обработать переопределение метода http по этой ссылке: https://stackoverflow.com/questions/24019489/node-js-express -4-x-method-override-not-handle-put-request

Я думаю, что что-то не так с настройкой на сервере. У кого-нибудь возникала подобная проблема?

Спасибо.

0
задан 23 May 2017 в 14:33
1 ответ

Хорошо, я нашел решения.

Проблема выхода:

Класс WWW Unity, похоже, работает только с действительными postData. Я не предоставлял postData при создании WWW экземпляра, так как для выхода из системы требовались только пользовательские заголовки HTTP-запросов. Это сработало после того, как я создал фиктивный массив байт и передал его в WWW конструктор.

WWW www = new WWW(url, null, headers) // return 404

WWW www = new WWW(url, new byte[1], headers) // worked

PUT проблема:

Мои заголовки запросов имели значение 'X-HTTP-Method-Override', но это не влияло на сервер до тех пор, пока я не модифицировал функцию allowMethodOverride внутри middlewares. js

var allowMethodOverride = function allowMethodOverride(req, res, next) {

  if (req.method === 'POST' && req.body._method) {
    req.originalMethod = req.method;
    req.method = req.body._method;
    delete req.body._method;
  }
  // Also detect these override request header sent by Unity clients
  else if (req.method === 'POST' && req.get('X-HTTP-Method-Override')) {
    req.originalMethod = req.method;
    req.method = req.get('X-HTTP-Method-Override');
  }
  next();
};
0
ответ дан 5 December 2019 в 10:23

Теги

Похожие вопросы