2010-10-19 63 views
7

我正在開發一個項目,要求我將一些數據發佈到需要用戶名和密碼才能訪問的網址。如何構建URL以便自動登錄系統?POST到密碼保護的URL?

$.ajax({ 
    url: "https://xxxxxxx", 
    type: "POST", 
    data: "___PUT_BODY___="+file+"&file="+time, 
}) 
+1

它使用HTTP基本身份驗證或基於HTML和自定義的東西嗎? – lonesomeday 2010-10-19 17:57:14

回答

6

如果該頁面使用「基本」 HTTP認證(如瀏覽器中打開一個小對話窗口,詢問用戶名和密碼的那種),你可以簡單地做:

https://username:[email protected]/ 

如果網站登錄表單嵌入在某個地方的頁面上,則登錄信息不會進入URL。您必須模擬提交該表單(通過專門爲登錄生成類似的AJAX請求)。

+0

我同意votey,但我的2美分是我傾向於使用自定義鎖定爲我的安全頁,並使用獨特的令牌授予必要的訪問權限。所以我的文章會有{file:file,token:token}這樣的數據,其中url是一個鎖定旁路,用於檢查令牌和引用網站以驗證訪問權限。聽起來很複雜,但事實並非如此。您可以使用基本會話和登錄表單進行此操作。也許20分鐘即可成立。 – 2010-10-19 18:09:55

+0

「如果服務器在提供響應之前執行HTTP身份驗證,則可以通過用戶名和密碼選項發送用戶名和密碼對。」 – Incognito 2010-10-19 19:08:41

2

Read the funny manual

此外,不要讓你的查詢字符串它在URI酒吧出來的方式,使一個對象。 此外,分號在該聲明的結尾處進行。

$.ajax({ 
    url: "https://example.com", 
    type: "POST", 
    data: { 
      "___PUT_BODY___=" : file, 
      "&file="   : time 
      }, 
    password : "theP4s$w0rD!", 
    username : "Bob's big bad world of HTTP Auth" 

}); 
0

如果您發送的頁面是公開的,如果用戶名/密碼必須保持私密性,你應該考慮把你的用戶名/密碼的頁面。

您可以發佈到服務器上的本地頁面,而該頁面又可以將例如curl的數據發送到接收服務器。

也使用curl你可以做任何你需要的認證。