2009-05-10 6 views
1

これは簡単に思えないかもしれませんが、これを行う方法が見つからない(明らかな方法以外の)セキュリティ上の問題とは考えられません。ログインステータスの照会URL、javascript

私は、私のチームで使用するFirefox用のアドオンを作りたいと思っています。基本的には、ツールのサイトの認証Cookieが期限切れになっているかどうかを知らせるステータスバーのアイコンが表示されるので、現在ブラウザで作業を失うことなく伝えることができます。

私はアドオンでクッキーをチェックすることができたと思っていましたが、これは簡単なアイデアのための大きな面倒です。それから私に起こった... DUH ...私はちょうど私達のサイトのメインページにアクセスしようとして追加することができます。 「アクセスが拒否されました」という応答を受け取った場合、「ログインしていません」のアイコンが表示されますが、それ以外のものがあれば「サインイン」が表示されます。

しかし、AJAXでこれを行うすべての試みは、私のクッキーの試行とほぼ同じくらい困難であることが判明しています。

は簡単な方法は、「pingURLは」URLに「行く」と回答を得るための方法だろう

var url = "http://example.com"; 
var response = pingURL(url, "blah); 
status = (response = "Welcome!") ? "Signed in" : "Not Signed In"; 

を言うためには、JavaScriptが好ましいが、XULでそうでないと、ありますか?

+0

同じ時期に同じような質問が残っています。http://stackoverflow.com/questions/844719/accessing-cookies-hopefully-in-javascript – pc1oad1etter

+0

それは私です。私は2つのGoogleアカウントを持っていて、その質問を投稿するまで間違ったアカウントを使用したことに気づいていませんでした。 – Anthony

答えて

0

まさになぜあなたはクッキーを大した手間と考えていますか?これは間違いなく速く、おそらく実装が簡単です。クロムからのクッキーを読むことはsimple and well-documentedである。クッキーを解析する方法を理解できない場合は、ヘルプを求めてください。

2
function checkAccess(url, callback) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", url); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4) { 
      if (xhr.status == 200) { 
       callback(true); 
      } else { 
       callback(false); 
      } 
     } 
    }; 
} 

これはただで呼び出す...動作するはず "のcheckAccess( 'http://example.com'、機能(レディ){});"準備がブール値の場合の例として挙げられます。

+0

よく見えません。私はまだ火かき棒でこれを取得しています: キャッチされていない例外:制限されたURIへのアクセスが拒否されました(NS_ERROR_DOM_BAD_URI) これはChromeにのみ存在します。私は確かに何かが明らかに欠けていると確信しています。 – Anthony

+0

神様私はSOP(Same Origin Policy)が嫌いです。私は拡張機能がそれを持っているはずだとは思わない...あなたはXULファイルをChrome、ローカルファイル、Webから実行していますか? – devyn

+0

実際、私は現在SOPの問題を抱えています...他の場所からlocalhostにアクセスできないのは残念です。 Firefoxには「公開」オプションがあるとは思わない – devyn