Взаимодействует ли модуль sspi с ajax?Как это решить? - PullRequest
1 голос
/ 26 июля 2011

Я думаю, что Mod-Auth-SSPI конфликтует с моей системой AJAX. Пожалуйста, найдите ниже код -

new Ajax.Request(ajaxUrl,
{
    method:'post',
    parameters: 'json='+json,
    onSuccess: 
    function(transport)
    {
    if (transport.responseText.isJSON())     
    displayInfo(transport.responseText.evalJSON(true)); // error occurs     
    else       
    alert('Damn! It's not working...');   
    },
    onFailure: 
    function()
    { 
        alert(mateErrAjaxUrl) 
    }  
});

всегда возвращает предупреждение («Черт! Это не работает ...»). Это означает, что displayInfo не работает или конфликтует с чем-то. Может кто-нибудь сказать мне, как решить это?

Обратите внимание, что Mod-Auth-SSPI работает правильно в соответствии с моими потребностями.

1 Ответ

1 голос
/ 29 сентября 2011

У меня была похожая проблема с Ajax и Internet Explorer (v6 и 8).Если вы наблюдаете сетевой трафик, вы можете увидеть, что IE начинается с отправки пустого запроса POST (content-length: 0), который запускает аутентификацию NTLM, а затем отправляет правильный POST с полным телом.происходит, когда IE использует уже установленное соединение TCP / IP с Apache / mod_auth_sspi.При настройках по умолчанию mod_auth_sspi пропускает пустой запрос POST, так как соединение было аутентифицировано.И ваше приложение получает пустой POST-запрос, который, вероятно, его озадачивает.

Одним из решений является добавление инструкции 'SSPIPerRequestAuth On' в конфигурацию Apache, как указано здесь:
http://wiki.apache.org/httpd/ModAuthSSPI
(на момент написания этой статьи / doc в источнике mod_auth_sspi, к сожалению, не обновился)

Еще один, в старой установке mod_sspi, - добавить MaxKeepAliveRequests 2 и KeepAliveTimeout 1', что грязно, но может прийти на помощь.

...