Запишите интерфейс заднего конечного вызова, чтобы вернуть 404 опыта

Ajax

описание проблемы

Интерфейс только что разработан и не жив, поэтому в тестовую среду я привел ветку бэкенд-проекта.
При вызове внутреннего интерфейса в тестовой среде была обнаружена ошибка 404, как показано на рисунке:

мыслительный процесс

  • Во-первых, первая реакция - неверный url, например, слово неправильное, есть лишний "/" и т.д., но нет ничего плохого в том, чтобы снова скопировать его в интерфейсный документ.
  • Потом я заподозрил, что нет ресурса внутреннего интерфейса, я напрямую открыл интерфейс в браузере и обнаружил, что доступен GET-запрос. И после запроса интерфейс был проверен ios и android, чтобы быть осуществимым. Я использовал почтальона, чтобы запросить его сам, и обнаружил, что это действительно работает. (параметры не заполняются, но есть внутренние ресурсы).

  • Тогда я подозреваю, что POST в браузере проксируется в другую среду, закрываю Charles и switchyOmega и проверяю, проксируется ли промежуточным ПО проект, за который я отвечаю, а гусь — нет. Это интересно, и я сразу подумал, что могу кое-что узнать из этого вопроса.
  • Если внимательно посмотреть на возвращаемое значение 404, то это:

openresty — это высокопроизводительная веб-платформа, основанная на Nginx и Lua, то есть эта ошибка 404 возвращается Nginx, поэтому я попросил бэкенд-студентов проверить журнал Nginx и сравнил с ним обычный запрос почтового интерфейса. В чем разница. Оказалось, что разницы нет. После дальнейшего изучения бэкенд-студентами было обнаружено, что запрос был проксирован двумя уровнями Nginx, и, наконец, источник запроса был изменен с имени тестового домена на доменное имя онлайн? ? ? То есть внешний интерфейс, который вызывает это доменное имя, на самом деле является междоменным, и он напрямую блокируется Nginx, и сообщение об ошибке междоменного взаимодействия отсутствует. У запроса на получение нет источника, поэтому это нормально, а у поста есть источник, поэтому это неправильно. Другие нормальные интерфейсы обусловлены целенаправленной настройкой бэкэнда, этот новый интерфейс не настроен, а бэкенд кардинально изменен. Такую яму, оставшуюся от истории, действительно трудно предотвратить...

В заключение

404 — это не обязательно чисто интерфейсная проблема.Когда во внешнем интерфейсе нет возможности ошибки, загляните за пределы внешнего интерфейса, и там могут быть новые ответы.