Ответ
Статус 405 Method Not Allowed означает, что HTTP-метод, использованный в запросе (например, POST, PUT, DELETE), не поддерживается целевым URL для данного ресурса.
Основные причины:
- Неподдерживаемый метод: Запрос
POSTотправлен на эндпоинт, который обрабатывает толькоGET. - Ошибка конфигурации сервера или маршрутизации: Метод явно не разрешен в настройках фреймворка или веб-сервера (Nginx, Apache).
- Ограничения CORS: Предварительный запрос
OPTIONSможет вернуть 405, если метод не разрешен политиками CORS.
Пример (Flask):
from flask import Flask
app = Flask(__name__)
# Роут разрешает ТОЛЬКО GET
@app.route('/api/resource', methods=['GET'])
def get_resource():
return {'data': 'value'}
# POST запрос на '/api/resource' вызовет 405
Что проверить:
- Документацию API на список допустимых методов для эндпоинта.
- Реализацию роутинга на стороне сервера.
- Заголовки ответа
Allow, которые должны содержать список разрешенных методов.