2012-11-09 217 views
0

可能重複A HREF鏈接:
How to use Basic Auth and Jquery and Ajax基本身份驗證

我有一個網站是我通過基本身份驗證登錄,工作正常。但是當我想下載一個.pdf文件(這是由服務器生成的)時,我得到一個彈出窗口,其中包含我需要登錄的信息...... /。

我該如何預防?或者我怎樣才能發送鏈接的基本認證信息?我看到一些例子,如:http://username:[email protected]/filename.pdf。但是這在IE中不起作用。

我該如何解決這個只有HTML和或jQuery?

編輯: 我通過網站上的表單登錄,該工作。但是當我在登錄時想下載.pdf文件時,彈出窗口。

<a href="http://yourserver.com/yourpdffile.pdf">Report1.pdf</a> 
+0

你有什麼服務器端?問題不應該在客戶端解決,但(可能)在服務器上解決。 –

+1

即使它會工作。不要在URL中發送密碼。 – GolezTrol

回答

3

基本認證是基於服務器的,HTML和jQuery在這裏是無奈的。

但是,在向此類頁面發送AJAX請求之前,您可以提供這些詳細信息。這是一個例子。

$.ajax({ 
    'url': 'http://yourdomain.com/action/', 
    'beforeSend': function(xhr) { 
     xhr.setRequestHeader("Authorization", "Basic " + encodeBase64(username + ":" + password) 
    }, 
    //..... 
}); 
+0

當我檢索pdf時,我沒有發送ajax請求。這只是一個鏈接,我需要再次驗證PDF時進行身份驗證。 –

+0

@AnnaSmother,如果該鏈接有HTTP認證,那麼它會在導航時自動調用。 – Starx

0

從理論上講,你寫的方式是可能的(並且應該被瀏覽器和服務器支持)。但是,但是,這是

  1. 一個壞主意,因爲安全的(每個人都可以看到用戶名和密碼!),並
  2. 正如你所編寫的,它不完全支持。

我不知道它爲什麼不能在IE中工作,但最好不要使用它。