jQuery HTTP身份验证
有了jQuery,我打电话给Version One Rest API,并需要在HTTP标头中验证用户身份。
我试过了
$.ajax({
dataType: "jsonp",
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", "Basic xyz"); // xyz usr:pwd Base64 encoded
},
url: "https://www10.v1host.com/.../VersionOne/rest-1.v1/...",
success: function(data, status, xhr) {
alert("Load was performed.");
}
});
和
$.ajax({
dataType: "jsonp",
username:"usr",
password:"pwd",
url: "https://www10.v1host.com/.../VersionOne/rest-1.v1/...",
success: function(data, status, xhr) {
alert("Load was performed.");
}
});
但我总是会弹出询问我的凭据(我使用Chrome)。 即使在弹出窗口中输入凭据时,我也没有进行身份验证,并且窗口不断显示。
这不完全不可能,只是有点尴尬。 你可以像这样通过你自己的服务器代理所有的AJAX:
https://www10.v1host.com/.../VersionOne/rest-1.v1/...
www10.v1host.com
发送给您的服务器。 通过这种方式,密码保持不可见,并且在您对服务器的控制下,客户端代码将获得与来自www10.v1host.com
API相同的API。 这种方法可能会引入一点滞后,但这应该是可以管理的。
当然,你仍然需要考虑浏览器和你的服务器之间的授权过程,但是你应该可以使用你已经拥有的任何授权(可能是cookies和普通的旧登录)。
您还需要根据API服务条款检查这种技术,以确保您玩的很好。
链接地址: http://www.djcxy.com/p/49737.html