我的目标是让访问者可以点击一个链接,然后重定向并登录到具有基本身份验证的网站。我们目前在几个非我们托管的网页but embedded credentials are no longer supported in Chrome上使用嵌入式凭据。我一直在调查在网址中传递凭据的替代方法(即https://user:password@website.com
),到目前为止还没有找到比以下更好的解决方案:
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);
}
});
这给了我以下错误:
XMLHttpRequest无法加载https://www.third-party-website.com。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://my-website.com'因此不允许访问。
Based on this SO thread,我想我需要访问第三方服务器才能将其Access-Control-Allow-Origin
设置为允许我的域名。如果我无法更改第三方服务器上的标题,还有其他选择吗?或者我的AJAX请求格式不正确?
答案 0 :(得分:0)
您可能希望在自己的网站上设置页面作为代理 并使用js中的类似内容将用户名+密码发布到您的代理 Link
$usr = $_POST['username'];
$pwd = $_POST['password'];