2012-02-27 16 views
2

XMLHttpRequestを使用して認証された(基本認証)POST要求を送信しようとしています。クロムとIEで動作しますが、Firefoxはログイン資格情報を要求するエラー401を系統的に返します。私がそれらに入ると、リクエストは正常に動作します。さらに、私は同じ認証を使用してGET要求を行い、すべてのブラウザ(Firefoxを含む)で動作します。 私はJQuery 1.7を使用しますが、同じ結果を出さずに試してみました。FirefoxでXMLHttpRequest認証が機能しない

$.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); 

、Firebugのは、この形態のものに要求を示しています 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); 

そして、上記のコードのあなたのブロックを実行します。

関連する問題