вызов ajax через cas

Мне нужно написать гаджет Google, который читает каналы из групп Google. Проблема в том, что я делаю вызов ajax для получения каналов, а наш домен приложений Google защищен CAS (центральная служба аутентификации). Итак, я получаю 400 неверных запросов при звонке.

Я подозреваю, что браузер не отправляет файл cookie при вызове ajax. Как я могу убедиться, что файл cookie также отправляется с вызовом ajax? ИЛИ, если это не должно быть проблемой, что мне нужно сделать?


person akula1001    schedule 11.12.2009    source источник
comment
Кто-нибудь нашел ответ на это? У меня такой же вопрос.   -  person Steve Nay    schedule 03.06.2010


Ответы (3)


Если вы выполняете обычный вызов AJAX (по крайней мере, с помощью jQuery), запрос завершится ошибкой, если домен и не совпадают. То есть, если вы звоните с app.mydomain.com на cas.mydomain.com, запрос не сработает.

В моем тестировании браузер будет отправлять файлы cookie должным образом, как и следовало ожидать, даже при вызовах AJAX.

Также убедитесь, что вы используете один и тот же протокол (HTTP или HTTPS) на обоих концах вызова (приложение и сервер CAS).

Если вы используете Firebug в Firefox, вы должны увидеть файлы cookie, отправляемые вместе с запросом. Если они не появляются там, вероятно, происходит что-то еще, что вам придется раскопать.

Вот похожий вопрос, который может быть полезен.

person Steve Nay    schedule 05.06.2010

В списке сообщений JASIG CAS обсуждается использование JSESSIONID для преодоления междоменных ограничения вызовов ajax.

У меня есть похожий вопрос спрашивая, есть ли другие подходы.

person Jon Jaroker    schedule 08.04.2011

     $.ajax({  
            type: 'post',
            dataType: 'script',
            url:'/some url',
            data:{},
            beforeSend: function(xhr) {
            xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
            }

У меня есть такая проблема, как эта, когда я думаю, что cas не работает с ajax, но я обнаружил, что в атрибуте содержимого rails 3 следует отправлять почтовые запросы.

Возможно, вы столкнулись с тем же. Я только что поделился тем, что помогло мне.

person Taimoor Changaiz    schedule 17.04.2012