Проверка ответа сервера через JS и статус 401

Тема в разделе "JavaScript", создана пользователем Горбушка, 5 авг 2014.

Модераторы: ZiX
  1. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.223
    Всем привет!
    Есть задача - нужно со стороны клиента проверять ответ сервера и дальше перенаправлять на 1 из 2 url.
    Всё осложняется тем, что проверять надо 401 код ответа... В осле (наверное конец света близок) всё работает как надо... А вот хром выдаёт форму авторизации...

    Нужно либо прибить форму, либо получить код 401 без неё вовсе...

    P.S. кому дико интересно - речь об доменной авторизации через АД. И если она работает - пихаем человека сразу на сайт, если нет - пихаем на форму авторизации...
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    не это случайно?
    http://stackoverflow.com/questions/...sic-auth-popup-and-handle-401-error-using-jqu
    http://loudvchar.blogspot.ca/2010/11/avoiding-browser-popup-for-401.html

    можно ещё проще сделать, на сервере что, самопис или что-то стандартное? если самопис, то можна специально для такого случая написать страничку, где это всё проверить и ничего не спрашивая редиректнуть
     
    Горбушка нравится это.
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.223
    На сервере HP Service Manager... На java и с не сильно открытым кодом... Приходится через js проверять =(
    И менять код ответа нереально... Надо именно его перехватить и убрать жто окошко...
     
    Шумадан нравится это.
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    ты мжешь перед ним или рядом установить, что-то простое и проверять, ну типа одностраничный апачь, кажется проще серверный код мутить чем скриптовый
     
    Горбушка нравится это.
  5. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.223
    Нельзя, авторизация идёт через SM - писать аналог - не вариант в данном случае... Надо со стороны клиента смотреть...

    Да, кстати, перенастройка браузера допустима. Можно менять всё, что угодно как в IE так и в хроме. Политики загрузим через АД...
     
    Последнее редактирование модератором: 5 авг 2014
    Шумадан нравится это.
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.547
    Симпатии:
    1.418
    Насколько мне известно jquery.ajax - это удобная обёртка над new XMLHttpRequest(), у которого есть 5 статусов - http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

    Простенький тест нам показывает, что http код 401 мы получаем только после того как не ввели данные в форму:
    HTML:
    
    <script>
    function handler() {
      console.log(this.status, this.readyState, Date.now());
    }
    
    var client = new XMLHttpRequest();
    client.onreadystatechange = handler;
    client.open("POST", "/auth/base.php"); //HEAD или GET погоды не меняют
    client.send();
    </script>
    
    Как вариант можно попробовать на сервере разместить php скрипт (предполагается что это можно сделать на том же домене), который будет обращаться к java-серверу с присланными заголовками и отдавать в браузер, который дёргает его через ajax, json объект с информацией о том есть авторизации или нет.
     
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.223
    Пхп использовать нельзя.В наличии апач, томкат, ява и ява скрипт... Яву лапать сильно затруднительно...
     
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    ну тоже хорошо, но я тебе сочувстую :hi:
     
    Джуга и Ctrogan нравится это.
  9. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.547
    Симпатии:
    1.418
    Не суть важно использовать пых, можешь реализовать на java или JSP, если он такое умеет.
    Но вот чистый ява скрипт в браузере клиента, вероятнее всего этого не сделает.
     
    Последнее редактирование: 6 авг 2014
    Шумадан нравится это.
  10. Jedy

    Jedy Писатель

    Регистр.:
    11 янв 2013
    Сообщения:
    5
    Симпатии:
    0
    $.get(url)
    .done(function() {
    alert( "success" );
    })
    .fail(function(xhr) {
    alert( xhr.status );
    });