В чем проблема данного кода? Есть 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"); }); } }); }); }); Заранее спасибо :)
В строке $.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-кода.
В коде есть несколько проблем:
В строке $.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");
});
}
});
});
});
Пожалуйста, протестируйте этот исправленный код и посмотрите, работает ли он как ожидается.