Назад | Перейти на главную страницу

Ошибка 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-handling-put-request

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

Спасибо.

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

Проблема с выходом из системы:

Класс 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 было установлено значение PUT, но это не повлияло на сервер, пока я не изменил функцию 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();
};