В чем проблема данного кода? Есть javascript на сайте, который должен с помощью api проверять ник нейм, и если он свободен, то выводить сообщение "Адрес доступен", но в чем-то проблема, сообщение не выводится. Сам не слишком знаю javascript, поэтому решил написать сюда.Подключен jquery.
#msgbox - div
#url - input$(document).ready(function(){
$("#url").blur(function(){
$("#msgbox").text('Проверка...').fadeIn("slow");
$.get("https://moysite.ru/check.Url",{ url:$(this).val(), s:'secretkey' } ,function(data){
if(data=='{"response":[{"status":"success","message":"2"}]}') {
$("#msgbox").fadeTo(200,0.1,function(){
$(this).html('Адрес занят').fadeTo(900,1);
});
}else{
$("#msgbox").fadeTo(200,0.1,function() {
$("#msgbox").text('Адрес доступен').fadeIn("slow");
});
}
});
});
});
Заранее спасибо :)

21 Авг 2019 в 06:29
229 +1
0
Ответы
1

В коде есть несколько проблем:

В строке $.get("https://moysite.ru/check.Url",{ url:$(this).val(), s:'secretkey' } ,function(data){, вы передаете параметр 'url' но вместо этого должно быть 'url', так как 'url' - это название параметра, который вы ожидаете на сервере.

В строке if(data=='{"response":[{"status":"success","message":"2"}]}') {, у вас сравнение происходит с JSON-строкой, но возможно, что сервер возвращает данные в виде объекта JSON, поэтому вам нужно использовать метод JSON.parse(data) для преобразования ответа от сервера в объект JSON и затем проверять его значения.

В строке $("#msgbox").text('<font color="green">Адрес доступен</font>').fadeIn("slow");, вы неправильно используете метод text(), потому что нельзя вставлять HTML-разметку как строку в метод text(). Вместо этого, используйте html() для вставки HTML-кода.

Исправленный код должен выглядеть примерно так:

$(document).ready(function(){
$("#url").blur(function(){
$("#msgbox").text('Проверка...').fadeIn("slow");
$.get("https://moysite.ru/check.Url",{ url:$(this).val(), s:'secretkey' }, function(data){
if(JSON.parse(data).response[0].status === "success" && JSON.parse(data).response[0].message === "2") {
$("#msgbox").fadeTo(200,0.1,function(){
$(this).html('<font color="green">Адрес занят</font>').fadeTo(900,1);
});
} else {
$("#msgbox").fadeTo(200,0.1,function() {
$(this).html('<font color="green">Адрес доступен</font>').fadeIn("slow");
});
}
});
});
});

Пожалуйста, протестируйте этот исправленный код и посмотрите, работает ли он как ожидается.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир