web-dev-qa-db-ja.com

XMLHTTPRequestによる基本認証

XMLHTTPRequestを使用してTwitterで更新を取得しようとしています。

var XMLReq = new XMLHttpRequest();
XMLReq.open("GET", "http://Twitter.com/account/verify_credentials.json", false, "TestAct", "password");
XMLReq.send(null);

ただし、スニファーを使用すると、通過する認証ヘッダーを確認できません。したがって、Twitterから401エラー応答が返されます。

アカウントとパスワードが正しく入力されている。

誰かがこれを試みますか?誰かが私にいくつかの指針を与えることはできますか?ありがとうございました。

22
x1a0

次のように、Authorizationヘッダー、ユーザー名、パスワードをbase64エンコードされた文字列に追加するだけです。

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
64
Vitor Arbex

クロスオリジンリクエストで、ユーザー認証情報を送信する場合は、withCredentialsフラグを明示的に設定する必要があります。

http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute を参照してください(ここで ser credentials にはHTTP認証が含まれます)

9
Thomas Broyer

元のポリシーのため、ドメインから別のドメインにXMLHttpRequestを作成することはできません。例えば。スクリプトがhttp://Twitter.com/...から読み込まれていない限り、Twitter.comのURLは使用できません。スクリプトがhttp://localhost/から読み込まれる場合、AJAXリクエストもlocalhostに移動する必要があります。

3
mhaller