2012-02-21 71 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)); 
      } 
}); 

但我的問題是我沒有得到任何feedack。看起來像成功或錯誤的方法被稱爲。

在進一步的調試,我得到

Uncaught ReferenceError: encodeBase64 is not defined 

我失去了什麼?幫助將不勝感激。

+0

如果有任何錯誤或使用螢火蟲,對控制檯的迴應是什麼? – 2012-02-21 14:40:26

+0

更新我的問題與控制檯輸出 – Neelesh 2012-02-21 14:42:05

+0

然後你有你的錯誤功能encodebase64是undefined – 2012-02-21 14:43:05

回答

7

錯誤是說,沒有方法稱爲encodeBase64定義。

許多瀏覽器從ASCII爲base64名爲BTOA一個內置的轉換:

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

如果要支持舊的瀏覽器,確保有一個base64填充工具,比如一個在http://ww.w.icodesnip.com/search/javascript%20dark%20codes/45

+0

謝謝你的幫助。但是當我故意改變一個錯誤的用戶名/密碼時,我發現這個錯誤方法從來沒有被調用。 – Neelesh 2012-02-21 15:07:20

+0

當用戶名/密碼錯誤時,服務器是否會響應401狀態碼? – steveukx 2012-02-21 17:56:12

+0

是它返回 { 「錯誤」:{ 「代碼」:401, 「消息」: 「未經授權:基本身份驗證要求」 } } – Neelesh 2012-02-22 13:14:00