Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.09.2017, 20:38
Новичок на форуме
Отправить личное сообщение для PavelRem Посмотреть профиль Найти все сообщения от PavelRem
 
Регистрация: 12.07.2017
Сообщений: 6

Ajax success: глюк
$.ajax(
            {
                url: 'login',
                type: 'POST',
                data: data,
                cache: false,
                success: function (result) {
                    if (result === '1')// ПОЧЕМУ 1 не равно 1???
                        window.location.href = 'settings';
                    else
                        $("#error").text(result);//ВСЕГДА ПОПАДАЕТ СЮДА
                }
            });

Запрос работает, все отлично выполняется.
Со стороны php скрипта тоже все ок.
НО когда php отправляет ответ, success: всегда попадает в else ветку.
exit('1');

Почему 1 не равно 1???.
Я пробовал менять ответ '1' на строку, на false/true, на int. В проверке соответственно.
Результат один и тот же.

Спасите пожалуйста, а то ноутбук на грани вылететь в окно...
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2017, 21:34
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

Ну, может не нужно использовать точное сравнение? Может, попробуйте "==". То есть в сравнении использовать два, а не три знака равно. Три знака равно учитывает нюансы, такие как типы данных и т.д.
Ответить с цитированием
  #3 (permalink)  
Старый 25.09.2017, 21:47
Новичок на форуме
Отправить личное сообщение для PavelRem Посмотреть профиль Найти все сообщения от PavelRem
 
Регистрация: 12.07.2017
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
PavelRem,
alert(result);

$("#error").text(result); работает, там всегда выводится result 'злосчастная единица', в этом и проблема. Зачем alert?
Ответить с цитированием
  #4 (permalink)  
Старый 25.09.2017, 21:47
Новичок на форуме
Отправить личное сообщение для PavelRem Посмотреть профиль Найти все сообщения от PavelRem
 
Регистрация: 12.07.2017
Сообщений: 6

Сообщение от void() Посмотреть сообщение
не нужно использовать точное сравнение
пробовал
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2017, 21:53
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от PavelRem
exit('1');
exit ничего не возвращает и ты искусственно создаешь ошибку.
Для вывода данных пиши
echo 1;
...
exit;
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2017, 22:41
Новичок на форуме
Отправить личное сообщение для PavelRem Посмотреть профиль Найти все сообщения от PavelRem
 
Регистрация: 12.07.2017
Сообщений: 6

Если exit ничего не возвращает откуда берется '1' в блоке #error ?
Туда вобще приходит любой текст из exit();
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2017, 03:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Rasy
exit ничего не возвращает
Кто сказал?
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2017, 11:11
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

PavelRem,
Интересно, мне не удалось по этому запросу вернуть с сервера "1".
Ни echo, ни exit
echo "0"; - возвращает
echo "01"; - возвращает
echo "1"; - ошибка сервера в приложении '/'.

echo 2; - возвращает
echo 1; - ошибка сервера в приложении '/'.
echo 2 - 1; - ошибка сервера в приложении '/'.

Последний раз редактировалось Dilettante_Pro, 26.09.2017 в 11:14.
Ответить с цитированием
  #9 (permalink)  
Старый 26.09.2017, 12:25
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Проверил. Все работает. Exit не выводит код статуса, если строка, и echo не подводит. При тождественности ошибки не возникает.
Сообщение от PavelRem
ноутбук на грани вылететь в окно...
Вывод - у тс проблемы с кармой

Последний раз редактировалось Rasy, 26.09.2017 в 14:19. Причина: опечатка, не, пропустил
Ответить с цитированием
  #10 (permalink)  
Старый 26.09.2017, 12:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Rasy
Exit выводит код статуса, если строка
Выводит код статуса если число не выводя в браузер ничего, и выводит в браузер если стока.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переделать функцию adspro AJAX и COMET 5 09.03.2015 04:32
Передать значение в коллбэк Success для асинхронного Ajax denyweb AJAX и COMET 3 29.08.2012 23:20
как вернуть success (ajax) shaltay jQuery 3 20.01.2012 18:39
ajax success в ie7 проблема harek13 AJAX и COMET 0 26.05.2011 17:15
Передача объекта в ajax -> success tazododu AJAX и COMET 4 05.11.2010 18:46