2011-08-05 13 views
1

Jqueryを使用してajaxリクエストを作成していますが、ページが保護されていることを除いてすべて正常に動作しますので、ログインしたユーザーだけがリクエストできます。私はすでにログインしていますが、私はJquery ajaxが私のクッキーをURLに送信しないと思います。クッキー、ヘッダーも送信されるので、ページで401要求として扱わないようにこのエラーを解決するにはどうすればよいですか?事前にAjax jquery unauthorized request

感謝:)

答えて

1

としてセッションを確認することができます。これが当てはまる場合は、リクエストが他のサイトではなく承認されていないことを伝えるのはブラウザです。

編集:

このような場合は、あなたが他のウェブサイトをコントロールしている場合、私はあなたが特定のヘッダ(http://www.w3.org/TR/2008/WD-access-control-20080912/#access-control-allow-origin)を使用して要求を許可することができると信じて。あなたが他のサーバーを制御していない場合、この問題の(純粋なjavascript)方法はありません。

あなたがコントロールするサーバー上でプロキシを実行して、ページを要求してそれを渡すことができます。しかし、これはまだあなたのユーザーのクッキーなしでページを要求するという問題を抱えています。

+0

実際には、フォーム認証だけでなく基本認証(Windows認証)も設定されています。それはjquery ajaxの問題でしょうか? – Jaggu

+0

リクエストに自分でヘッダーを設定すると、基本認証が可能になります(http://dothow.blogspot.com/2009/05/http-basic-authentication-with-jquery.html)。もちろん、これは依然としてリクエストがページが来たのと同じドメインにある場合にのみ機能します。 – alnorth29

-1

あなたはまだあなたがあなたのサイトが稼働しているものとは異なるドメインにページを要求しようとしているように聞こえる通常

+0

私はあなたが言っているか理解していませんでした。しかし、手抜きで私は私の要求のために401を得る。 – Jaggu

+0

これは本当に役立つ答えではありません。おそらく、詳細を追加したり、何を意味するのかを説明してください。 –

+0

これはASP.NET関連の質問ですので、申し訳ありません。 AJAX経由のPHPでは$ _SESSIONをチェックしてユーザーの要求を承認することができます。 – sonnb

0

私のjQueryのソリューション:(ベーシック認証のために)あなたのAJAX呼び出しで :

headers: { 
       "Authorization": "Basic " + btoa('username:password') 
}, 

または

beforeSend: function (xhr){ 
       xhr.setRequestHeader('Authorization', "Basic " + btoa('username:password')); 
},