使用jQuery,我调用第一版Rest,需要在header中对用户进行身份验证。
我试过了
$.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)。即使我在弹出中键入凭据,也没有对我进行身份验证,并且窗口一直显示。
发布于 2011-01-07 00:23:36
这并不是不可能的,只是有点尴尬。您可以通过自己的服务器代理所有AJAX,如下所示:
https://www10.v1host.com/.../VersionOne/rest-1.v1/...的请求。www10.v1host.com将其发送到您的服务器一样。通过这种方式,密码将保持不可见性,并处于服务器上的控制之下,客户端代码将获得与www10.v1host.com相同的API。这种方法可能有一点滞后,但这应该是可以管理的。
当然,您仍然需要考虑浏览器和服务器之间的授权过程,但是您应该能够使用已经拥有的任何授权(可能是cookie和普通的旧登录)。
您还需要对照API服务条款检查此技术,以确保您玩得很好。
https://stackoverflow.com/questions/4620783
复制相似问题