success json undefined
Подскажите пожалуйста..
function loginValidate( inp, login ) { var msg = inp+'='+login; msgServer( msg ) ? showAnswer( 'Iseet User!' ) : showAnswer( 'ok!' ); }showAnswer() - просто показывает ответ. msgServer() - отправляет запрос на сервер и получает ответ в виде true/false. Подскажите, почему в loginValidate возвращается undefined? success: function ( data ) alert( data );- выдает true; Пробовал: var resp = msgServer( msg ); alert( resp );- undefined. |
Если отвечать, исходя из кода, который вы показали, то однозначно можно утверждать только одно : что-то возвращает undefined. Выкладывайте все запросы, серверные скрипты и тд
|
ok.
function phoneVal( name, values ) { values.length < 10 || values.length > 12 || isNaN( values ) ? //чахлая проверка chenger( name, 'Некорректный телефон!' ) : //показывает ответ var msg = msgServer( name+'='+values ) ; //запрос к серверу и почему-то в msg попадает undefined... msg ? chenger( name, 'Уже существует!' ) : chenger( name, 'ok' ) ; } отправка на сервер: function msgServer( msg ) { //alert( msg ); $.ajax ({ type: 'post', data: msg, url: '/ajax/', dataType: 'json', success: function( data ) { return data; // тут true/false, проверено alert, работает! }, error: function( xhr, str ) { alert('Возникла ошибка: ' + xhr.responseCode); } }); } php нужен? |
Если не назначить фукции что она должна возвращать после как отработает она вернет undefined ... если хотите что то отдавать после ее работы отдавайте через return
|
success: function( data ){ return data; // тут true/false, проверено alert, работает! },в самом ответе data содержится true или false. Я как бы return data. Или что то не так делаю? |
Цитата:
Из кода выше все ваши фукции не имеют return а значит нечего не возвращают верней возвращают ответ по умолчанию то есть undefined |
Цитата:
|
Зеркальная ситуации msgServer не чего не возвращает. То что вы написали return в success нечего не меняет.
function msgServer( msg ) { //alert( msg ); var flag; $.ajax ({ type: 'post', data: msg, url: '/ajax/', dataType: 'json', success: function( data ) { flag = data; // тут true/false, проверено alert, работает! }, error: function( xhr, str ) { alert('Возникла ошибка: ' + xhr.responseCode); } }); return flag; } |
dd_smol,
Спасибо за наводку! :) Пытаюсь + в карму, пишет "вы должны добавить отзыв кому-то еще, прежде чем сможете добавить его dd_smol". Все верно, только есть еще заморочка. нужно выставить async: false. Из за асинхронности он возвращает ответ раньше чем получает его от сервера. |
выставил async: false отладчик ругается, мол не молодец, так ниразу делать не стоит. Есть еще какие нибудь варианты?
наковырял в гугле какую-то функцию типа callback, только не знаю как ее правильно прикрутить. |
Часовой пояс GMT +3, время: 08:53. |