首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery HTTP认证

jQuery HTTP认证
EN

Stack Overflow用户
提问于 2011-01-06 22:42:50
回答 1查看 4.5K关注 0票数 7

使用jQuery,我调用第一版Rest,需要在header中对用户进行身份验证。

我试过了

代码语言:javascript
复制
$.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.");
        }
    });

代码语言:javascript
复制
$.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)。即使我在弹出中键入凭据,也没有对我进行身份验证,并且窗口一直显示。

  1. 如何在headers中使用jQuery验证用户?
  2. 有没有办法使密码属性加密不可见?或者Base64是唯一的方法。我只想通过一个帐户访问服务器,但不希望客户端的用户看到密码(或者在javascripts中找到密码)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-07 00:23:36

这并不是不可能的,只是有点尴尬。您可以通过自己的服务器代理所有AJAX,如下所示:

  • 您的JavaScript通过AJAX与服务器联系。
  • 您的服务器使用适当的基本auth标头(或任何需要使用的身份验证)来设置对https://www10.v1host.com/.../VersionOne/rest-1.v1/...的请求。
  • 您的服务器将响应发送回脚本,就像www10.v1host.com将其发送到您的服务器一样。

通过这种方式,密码将保持不可见性,并处于服务器上的控制之下,客户端代码将获得与www10.v1host.com相同的API。这种方法可能有一点滞后,但这应该是可以管理的。

当然,您仍然需要考虑浏览器和服务器之间的授权过程,但是您应该能够使用已经拥有的任何授权(可能是cookie和普通的旧登录)。

您还需要对照API服务条款检查此技术,以确保您玩得很好。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4620783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档