Я делаю веб-страницу, используя CherryPy для серверной части, HTML, CSS и jQuery на клиентской стороне.Я также использую базу данных MySQL.
У меня есть рабочая форма для пользователей, чтобы зарегистрироваться на сайте - создать имя пользователя и пароль.Я использую jQuery для отправки запроса AJAX POST в CherryPy, который запрашивает базу данных, чтобы узнать, существует ли это имя пользователя.Если имя пользователя существует, предупредите пользователя, если нет, добавьте его в базу данных и сообщите об успешном выполнении.
$.post('submit', postdata, function(data) {
alert(data);
});
Успешный JQuery POST.
Я хочу изменить форму, чтобычто вместо проверки того, что имя пользователя существует при отправке, делается запрос GET, как в случае события размытия из ввода имени пользователя.Функция вызывается, и она переходит к CherryPy, но затем я получаю сообщение об ошибке: HTTPError: (404, 'Missing parameters: username')
.
$.get('checkUsername', getdata, function(data) {
alert(data);
});
Неудачный JQuery GET.
CherryPy:
@cherrypy.expose
def submit(self, **params):
cherrypy.response.headers['Content-Type'] = 'application/json'
e = sqlalchemy.create_engine('mysql://mysql:pw@localhost/6470')
c = e.connect()
com1 = "SELECT * FROM `users` WHERE `username` = '" + params["username"] + "'"
b = c.execute(com1).fetchall()
if not len(b) > 0:
com2 = "INSERT INTO `6470`.`users` (`username` ,`password` ,`website` ,`key`) VALUES ('"
com2 += params["username"] + "', MD5( '" + params["password"] + "'), '', NULL);"
a = c.execute(com2)
c.close()
return simplejson.dumps("Success!")
c.close()
return simplejson.dumps("This username is not available.")
@cherrypy.expose
def checkUsername(self, username):
cherrypy.response.headers['Content-Type'] = 'application/json'
e = sqlalchemy.create_engine('mysql://mysql:pw@localhost/6470')
c = e.connect()
command = "SELECT * FROM `users` WHERE `username` = '" + username + "'"
a = c.execute(command).fetchall();
c.close()
sys.stdout.write(str(a))
return simplejson.dumps("")
Я не вижу различий между ними, поэтому не знаю, почему запрос GET вызывает у меня проблему.Любое понимание того, что я могу делать неправильно, было бы полезно.
Если у вас есть идеи по поводу jQuery, CherryPy, файлов конфигурации, чего угодно, я был бы очень признателен.* * РЕДАКТИРОВАТЬ ****
По просьбе некоторых друзей, вот еще немного информации.
Как я вычисляю getdata:
var getdata = $("#username").val();
URL-адрес, запрашиваемый сервером: (Ну, это то, что, как говорит PuTTy, приходит / идет на сервер, я не знаю глупости на стороне сервера)
GET /checkUsername?noram HTTP/1.1