私の目標は、訪問者がクリックしてリダイレクトし、基本認証でサイトにログインするリンクを作成することです。現在、私たちがホストしていないいくつかのWebページ(but embedded credentials are no longer supported in Chrome)で埋め込み資格情報を使用しています。私は、URL(すなわちhttps://user:[email protected]
)に資格情報を渡すに代替案を検討してきた、これまでよりはましだ解決策を見つけていない、次サードパーティのサイトにリンクするためのChromeに埋め込まれた認証情報の代わり
:私は次のエラーを与えるXMLHttpRequest cannot load https://www.third-party-website.com . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://my-website.com ' is therefore not allowed access.
var url = 'https://www.third-party-website.com';
var username = 'my-username';
var password = 'my-password';
var encodedAuth = window.btoa(username + ':' + password);
$.ajax({
type: 'GET',
url: url,
xhrFields: {
withCredentials: true,
},
headers: {
"Authorization": "Basic " + encodedAuth
},
complete: function (result) {
window.location.href = url;
},
error: function (req, status, error) {
console.log(error);
}
});
を
Based on this SO threadのように、第三者のサーバーにアクセスして、自分のドメインを許可するようにAccess-Control-Allow-Origin
を設定する必要があると思います。サードパーティのサーバーのヘッダーを変更できない場合は、他にも何か選択肢がありますか?または、私のAJAXリクエストが正しくフォーマットされていないのですか?
にこのようなものを使用して、プロキシにユーザ名+パスワードを投稿して正しく構成されています。プロキシを使用して必要なものを守ることができるかもしれません。他のサイトのCookieは問題あります – charlietfl