2011-07-26 10 views
1

Mod-Auth-SSPIが私のajaxシステムと矛盾していると思います。以下のコードを見つけてください -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は私の必要に応じて正しく動作しています。

+0

応答が有効なJsonであることを確認しましたか? – toopay

答えて

1

私はAjaxとInternet Explorer(v6と8)で同様の問題がありました。 ネットワークトラフィックを監視すると、IEが空のPOST要求(content-length:0)を送信してNTLM認証をトリガーし、正しいPOSTを全身で送信することからIEが始まることがわかります。

IEが既にApache/mod_auth_sspiへのTCP/IP接続を確立しているときにバグが発生します。デフォルト設定では、接続が認証されているため、mod_auth_sspiは空のPOSTリクエストを通過させます。そしてあなたのアプリは空のPOSTリクエストを受け取るでしょう。

ここに述べたように、溶液の一つは、あなたのApacheの設定で「オンSSPIPerRequestAuth」命令を追加することです:
http://wiki.apache.org/httpd/ModAuthSSPI
(これを書いている時点で、mod_auth_sspiのソースで/ docには残念ながらできません最新の)

もう1つは、古いmod_sspiインストールで、 'MaxKeepAliveRequests 2'と 'KeepAliveTimeout 1'を追加することでした。これは汚れていても助けになる可能性があります。

関連する問題