Сохранение файла cookie после вызова Ajax с использованием JQuery и javascript - PullRequest
3 голосов
/ 08 февраля 2012

Используя одни и те же учетные данные, я пытаюсь войти в два разных места из одной формы.Причина этого заключается в том, что второй вход в систему (портал CRM) может быть загружен в iframe без необходимости повторного входа.Я решил, что лучшим решением будет использование Ajax-вызова для обработки одного входа в систему, а затем, после того как я получу ответ, перейду и обработать второй вход в систему.Я использую клиентскую сторону, чтобы сделать два звонка, потому что мне нужно, чтобы куки были сохранены в браузере клиента.Я использую Ajax, чтобы сделать звонок.Я знаю, что файлы cookie возвращаются (я использую приложение под названием Fiddler для просмотра активности), но я не знаю, как получить эти файлы cookie и сохранить их в браузере клиентов?

Javascript / JQuery That Iиспользуйте:

<script type="text/javascript">
    $(document).ready(function() {
        $(".login_btn").click(function() {
            $.ajax({
                type: "POST",
                url: "http://development/crm/processlogin.php",
                data:"username="+ "email@email.email" + "&password="+ "password" + "&rememberme="+ "on",
                success: function(data, textStatus){
                    alert("success: "+ JSON.stringify(data));
                },
                error: function(data, textStatus){
                    alert("error: "+ JSON.stringify(data));
                }
            });
        });
    });
</script>

Ответ куки, который я получаю, используя «Fiddler» для просмотра информации:

Response sent 44 bytes of Cookie data:
    Set-Cookie: PHPSESSID=4a30p9g6mh5tm93a94o7bh7r74; path=/
Response sent 50 bytes of Cookie data:
    Set-Cookie: WHMCSUID=75; expires=Thu, 07-Feb-2013 10:48:49 GMT
Response sent 79 bytes of Cookie data:
    Set-Cookie: WHMCSPW=54512414f2e6aef246445abf341a05e9; expires=Thu, 07-Feb-2013 10:48:49 GMT

Сообщение, которое я получаю из окна консоли firebug:

POST http://development/crm/processlogin.php 302 Moved Temporarily 5.04s

Вывод:

error: {"readyState":0,"responseText":"","status":0,"statusText":"error"}

Я считаю, что сообщение об ошибке 302 связано с тем, что сервер пытается перенаправить после входа в систему. На самом деле перенаправление мне не нужно, но мне нужны файлы cookieчтобы быть сохраненным в браузере, чтобы пользователь вошел в систему, и я надеюсь, что вы, ребята, можете сказать мне, как это сделать?

Спасибо !!!

1 Ответ

1 голос
/ 09 февраля 2012

Я полагаю, что cdm9002 был прав, говоря, что причина, по которой он не работал, была связана с разными доменами.Я проверил функциональность в том же домене, и это сработало, однако это не та функциональность, которая мне нужна.Я придумал хак, который заставляет это работать, но это не правильный способ делать вещи :(. Если кто-то знает правильный путь, я все еще заинтересован, но я разобрался с моей непосредственной дилеммой.

Решением было сначала обработать вход приложений. Затем загрузить следующие учетные данные для входа в скрытый iframe на следующей странице. Затем я использовал javascript для отправки скрытой формы.

Я знаю, что этоочень плохой способ сделать это, но я не смог придумать альтернативное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...