使用Javascript(CORS?)进行基本授权API登录
我读过很多关于使用Javascript使用基本授权登录站点API的文章,我觉得我已经尝试了所有我看到的建议,但我无法让它工作。我有一种感觉,这可能是一个双重问题,因为我得到了一个401错误和一个无访问控制允许原点错误 有人能给我解释一下我做错了什么吗?我尝试过以几种不同的方式包括授权,但结果总是一样的。我可以通过Python和Postman使用基本授权连接到同一个API,所以我不知道为什么Javascript对我不起作用。对我放松点,我是Javascript新手 这是我的剧本:使用Javascript(CORS?)进行基本授权API登录,javascript,jquery,json,cors,Javascript,Jquery,Json,Cors,我读过很多关于使用Javascript使用基本授权登录站点API的文章,我觉得我已经尝试了所有我看到的建议,但我无法让它工作。我有一种感觉,这可能是一个双重问题,因为我得到了一个401错误和一个无访问控制允许原点错误 有人能给我解释一下我做错了什么吗?我尝试过以几种不同的方式包括授权,但结果总是一样的。我可以通过Python和Postman使用基本授权连接到同一个API,所以我不知道为什么Javascript对我不起作用。对我放松点,我是Javascript新手 这是我的剧本: function
function logIn() {
var userName = document.getElementById("username").value;
var pWord = document.getElementById("password").value;
console.log("Your username is: " + userName);
$.ajax
({
type: "GET",
url: "https://example.com",
dataType: 'json',
async: false,
headers: {
"Authorization": "Basic " + btoa(userName + ":" + pWord)
},
success: function (){
alert('Thanks for logging in!');
}
});
}
我得到了这些错误:
GET https://example.com 401 (Please log in.)
Failed to load https://example.com No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 401.
您完全正确,CORS阻止您使用API,除非提供者通过“访问控制允许源代码”头明确允许。这是无法绕过的,它是由浏览器安全策略强制执行的。如果可用,请尝试JSONP。此外,如果这对您有效,我不确定API的作用,您可以使用托管在域上的某种代理脚本,API中间人从托管在域下的API访问远程API,以通过CORS