2012-02-27 59 views
2

我正嘗試使用XMLHttpRequest發送已驗證的(基本身份驗證)POST請求。它在Chrome和IE中工作,但Firefox系統地返回401請求登錄憑據的錯誤。當我輸入時,請求正常工作。此外,我還使用相同的身份驗證來執行GET請求,並且可以在所有瀏覽器(包括Firefox)上運行。 我使用JQuery 1.7,但我也嘗試過沒有它,結果相同。 這裏是我使用的代碼:XMLHttpRequest身份驗證在Firefox中不起作用

$.ajax({ 
      url: [relative path], 
      type: "POST", 
      username: user_id, 
      password: token, 
      data : dataText, 
      success: function(data){ 
       if(data == null) alert('Error: could not send message'); 
       else 
        handleUpdate(data); 
      } 
    }); 

或不JQuery的:

var xhr = new XMLHttpRequest(); 

    xhr.open("POST", [relative path], false, user_id, token); 
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
    xhr.onreadystatechange = function() { 
     if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { 
      console.log(xhr.responseText); 
     } 
    } 
    xhr.send(dataText); 

在這兩種情況下,螢火蟲顯示請求是這種形式的: http://user:[email protected]_url(絕對URL屬於同一域作爲網站)

任何想法,我可能做錯了什麼?

謝謝!

回答

2

首先嚐試與您知道是無效的憑證發送一個請求:

var xhr = new XMLHttpRequest(); 
xhr.open("POST", [relative path], false, "username_you_know_is_wrong", "any_string"); 
xhr.send(dataText); 

然後運行你的代碼塊以上。