发送授权头使用jQuery和Ajax(Sending authorization headers w

2019-07-28 21:57发布

我在下面看着的问题在这里计算器在什么即时尝试做没有运气。

Ajax的授权请求报头连连失败

jQuery的阿贾克斯未经授权401错误

发送跨域帖子凭据?

这里是我的代码,我现在有:

    $(document).ready(function() {
        $.ajax({
            url: 'http://sample.domain.com/script.php?name1=value1&jsonp=?',
            type: 'GET',
            dataType: 'json',
            contentType: "application/json",
            beforeSend: function(xhr) {
                 xhr.setRequestHeader("Authentication", "Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=") //Some characters have been replaced for security but this is a true BASE64 of "username:password"
            },
            success: function(data){
                alert(data);
            }
        });
    });


</script>

子站点我是通过htpasswd文件进行密码保护。 该网站的登录使用在使用Base64编码使用的用户名/密码组合的作品对我蛮好。

IM在一个比该URL上不同的域运行此脚本就是为什么我的JSONP =? 在url

响应IM从浏览器控制台得到的是: GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization Required)

Answer 1:

JSONP使用脚本标签代理。 它不支持自定义页眉。 您在端点的控制? 如果是这样考虑启用CORS,或通过在GET字符串认证密钥。

当使用JSONP JQuery的转换您的网址“Ajax”的要求:

<script src="[endpoint]"></script>

它然后写入随机函数

var json9409d0sf0d9s0df90 = function() {
     //some callback logic here.
}

并追加?回调= json9409d0sf0d9s0df90

您的服务器,然后说:

echo $_GET['callback] . "(" . $json . ")";

并发送作为响应返回,以便

json9409d0sf0d9s0df90({some: data});

由浏览器exexcuted和jQuery的神奇处理程序,使它像一个正常的Ajax回调响应处理。

AFAIK, <script src=""></script>资产载荷不会通过任何标准浏览器采取自定义首部。



Answer 2:

标题名称是Authorization ,并要发送“ Authentication

授权:基本QWxhZGRpbjpvcGVuIHNlc2FtBmU =



文章来源: Sending authorization headers with jquery and ajax