2012-02-21 24 views
1

私はJqueryの初心者です。 jqueryを使用して基本認証でリクエストを送信しようとしています。これが私がすることです。Jquery基本認証エラー

$.ajax({ 
      type: "GET", 
      url: domain, 
      dataType: 'json', 
      success: function(){ 
      alert('Thanks for your comment!'); 
      }, 
      error:function(){ 
      alert('here'); 
      }, 
      beforeSend: function(xhr){ 
      xhr.setRequestHeader('Authorization', 'Basic ' + encodeBase64(username + ":" + password)); 
      } 
}); 

しかし、私の問題は、フィダックを得ることができないということです。成功またはエラーメソッドの両方が呼び出されるように見えます。私は

Uncaught ReferenceError: encodeBase64 is not defined 

を取得し、さらにデバッグを

は私が何をしないのですか?ヘルプをいただければ幸いです。

+0

あなたのポストへの応答が何かエラーや火かき棒がある場合、コンソールで調べましたか? –

+0

私の質問をコンソール出力 – Neelesh

+0

で更新しました。関数encodebase64は定義されていません。 –

答えて

7

エラーがencodeBase64が定義されたと呼ばれる方法がないと言っています。

多くのブラウザが内蔵されている変換アスキーからbtoa呼ばBASE64に:

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

あなたは、このようなhttp://ww.w.icodesnip.com/search/javascript%20dark%20codes/45

1つとして古いブラウザ、base64でポリフィルがあることを確認してくださいし、サポートしている場合
+0

助けてくれてありがとう。しかし、意図的に間違ったユーザ名/パスワードに変更すると、エラーメソッドが呼び出されることはありません。 – Neelesh

+0

ユーザ名/パスワードが間違っていると、サーバは401ステータスコードで応答しますか? – steveukx

+0

(XHRが200のHTTPステータスコードがあれば成功したとみなされます)。あなたはそれが簡単代わりに「完全な」ハンドラにロジックを移動し、そこにエラーであるかどうかを確認するために、応答のメッセージボディをチェックするかもしれません。 – Neelesh