#javascript #python #html #http-1.1
#javascript #python #HTML #http-1.1
Вопрос:
Я создаю веб-страницу и в настоящее время застрял на странице входа в раздел кода. Всякий раз, когда я пытаюсь войти в систему, я продолжаю получать это предупреждение об ошибке: «HTTP / 1.1 POST / check-login» — метод 405 не разрешен. Я несколько раз просмотрел свой код и сравнил его с видео-лекциями, которые я просматриваю, но, похоже, ничто из того, что я пробовал до сих пор, не позволяет мне преодолеть эту ошибку. Я довольно новичок в обучении кодированию, поэтому ответ может быть действительно простым, я просто не вижу его. Этот проект работает на нескольких языках программирования и находится на нескольких разных страницах. Большая часть кода написана на Python и HTML с одной страницей в Java script. Я думаю, что страница Java script может быть причиной задержки, поскольку именно там в основном настроен код проверки входа. Если кто-нибудь может помочь мне определить, в чем проблема, и как ее исправить, я был бы признателен за помощь. Это разделы кода, которые, как я полагаю, связаны с возникающей проблемой.
1.
$(document).on("submit", "#login-form", function(e){
e.preventDefault();
var form = $(this).serialize();
$.ajax({
url: '/check-login',
type: 'POST',
data: form,
success: function(res){
if(res == "error"){
alert("Could not log in");
}
else{
console.log("Login as ", res);
window.location.href = "/";
}
}
});
});
import pymongo
from pymongo import MongoClient
import bcrypt
class LoginModel:
def __init__(self):
self.client = MongoClient()
self.db = self.client.codewizard
self.Users = self.db.users
def check_user(self, data):
user = self.Users.find_one({"username": data.username})
if user:
if bcrypt.checkpw(data.password.encode(), user["password"]):
return user
else:
return False
else:
return False
-
контрольный список класса:
определение Post (self):
data = web.input()
login = LoginModel.LoginModel()
isCorrect = login.check_user(данные)if isCorrect: return isCorrect return "error"
Комментарии:
1. Вы не показываете нам свое определение маршрута в коде python. Не поддерживаемый метод означает, что ваш маршрут, вероятно, привязан к чему-то вроде GET вместо POST.
2. Это то, что вы имеете в виду: импорт веб-страниц из моделей импорт RegisterModel, LoginModel urls = (‘/’, ‘Home’, ‘/ Login’, ‘Login’, ‘/ register’, ‘Register’, ‘/ postregistration’, ‘PostRegistration’, ‘/check-login’, ‘Контрольный список )
Ответ №1:
Попробуйте добавить завершающую косую черту к URL-адресу в запросе AJAX:
$.ajax({
url: '/check-login/',
...
Комментарии:
1. Затем убедитесь, что ваш API действительно называется ‘check-login’. Возможно, попробуйте ‘check_login’