jquery - 选项资源加载失败 - 基本身份验证 + SSL - Chrome/Safari

标签 jquery google-chrome ssl safari basic-authentication

我目前遇到了 Chrome 和 Safari 的问题,但 Firefox 没有。 我只是想向服务器发送一个基本的 GET 请求。这一个使用 SSL 和使用 base64 编码的 "username:password" 的基本身份验证。下面是一个例子:

$.ajax({
  url: 'https://(...)',
  type: "GET",
  beforeSend: function(xhr) {
    var base64 = 'dXNlcm5hbWU6cGFzc3dvcmQ=';
    return xhr.setRequestHeader("Authorization", "Basic " + base64);
  }
});

Chrome 开发者工具显示错误:

OPTIONS https://(...) Resource failed to load 
f.support.ajax.f.ajaxTransport.send
f.extend.ajax

enter image description here

我能做什么?感谢您的帮助。

最佳答案

    var auth; 

function make_base_auth(user, password) {
    var tok = user + ':' + password;
    var hash = Base64.encode(tok);
    return "Basic " + hash;
}

function getAuthCookie() {

    var cn = "Authorization=";
    var idx = document.cookie.indexOf(cn)
    var end;

    if(idx != -1) {
        var end = document.cookie.indexOf(";", idx + 1);
        if(end == -1)
            end = document.cookie.length;
        return unescape(document.cookie.substring(idx + cn.length, end));
    } else {
        return "";
    }
}

       document.cookie = encodeURIComponent("Authorization") + "=deleted; expires=" + new Date(0).toUTCString(); 
       auth = make_base_auth($.trim($('#email').val()), $.trim($('#password').val()));
   document.cookie = "Authorization=" + auth;


             $.ajax({
        url : BASE_URI + "user",
        method : "GET",
        beforeSend : function(xhr) {
            xhr.setRequestHeader('Authorization', getAuthCookie());
        },
        xhrFields : {
            withCredentials : true
        },
        accept : "application/json",
        contentType : "application/json",
        cache : false,
        cookie : false,
        statusCode : {
            404 : function() {
                console.log("Page Not Found");
            } 
        }

    }).success(function(response) {
        console.log("Login SUCCESS " + JSON.stringify(response));

           }).fail(function(response) {

    }).then(function() {

           });

关于jquery - 选项资源加载失败 - 基本身份验证 + SSL - Chrome/Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886764/

相关文章:

javascript - JS : check if browser supports focus options

tomcat - 在 Tomcat 中为每个服务启用相互 SSL

c# - 不活动后的 SslStream 延迟

java - Tomcat 7 的 CA 证书安装过程

javascript - 在 IE8 中模拟 css 缩放 - 任何 jQuery 库、polyfill 等等?

javascript - 创建数组,使用 $.each 循环,如果不在数组中则添加值

javascript - 如何清理这个 jQuery 函数并使其更加灵活?

jquery - Ember 验收测试多个按键事件

html - <div> 标签在 Chrome 中有效,但在 Firefox/IE 中无效

javascript - 使用 CSP 在 Web Worker 中启用 'new Function'