pad*_*dis 7 authentication rest jquery
使用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.");
}
});
Run Code Online (Sandbox Code Playgroud)
和
$.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.");
}
});
Run Code Online (Sandbox Code Playgroud)
但我总是弹出来询问我的凭据(我使用Chrome).即使我在弹出窗口中键入凭据,我也没有通过身份验证,窗口仍然显示.
这并非完全不可能,只是有点尴尬。您可以通过您自己的服务器代理所有 AJAX,如下所示:
https://www10.v1host.com/.../VersionOne/rest-1.v1/...您的服务器使用适当的基本身份验证标头(或您需要使用的任何身份验证)设置请求。www10.v1host.com发送到您的服务器的响应完全相同。这样,密码在服务器上保持不可见并在您的控制之下,并且客户端代码获得与www10.v1host.com. 这种方法可能会带来一点滞后,但这应该是可以管理的。
当然,您仍然需要考虑浏览器和服务器之间的授权过程,但您应该能够使用您已经拥有的任何授权(可能是 cookie 和普通的旧登录名)。
您还需要根据 API 服务条款检查此技术,以确保您玩得很好。
| 归档时间: |
|
| 查看次数: |
4434 次 |
| 最近记录: |