1

我正在使用以下内容进行 http GET:

$.ajax({
    type: 'GET',
    url: server + '/hello',
    dataType: 'json',
    async: false,
    xhrFields: {
        withCredentials: true
    },

    success: function(data){
        if(data.connected){
    },
    error: function(a, b, c){
    }
});

我看到这些设置在标题中:

 Accept:application/json, text/javascript, */*; q=0.01
 Accept-Encoding:gzip,deflate,sdch
 Accept-Language:en-US,en;q=0.8
 Authorization:Basic bGlkerrdN1NDpTdW55ytXIwMA==
 Connection:keep-alive 
 Cookie:OBBasicAuth=fromCache; 
 ObSSOCookie=
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.10 Safari/537.36
 Response Headersview source

在 Javascript 或 JQuery 中有没有办法获得授权部分?

4

2 回答 2

0

无法让它在 JavaScript 中工作。

在服务器端工作,我从标题中获取详细信息,通过使用@context HttpServletRequest. 然后抓取标头并将所需的参数发送回客户端。

这是唯一的方法,就我从其他来源读到的而言,因为 JavaScript 无法访问由浏览器设置的这些 cookie 和标头。

于 2016-04-26T04:55:00.583 回答
0

这是一个如何在 ajax 调用中设置和获取标头的示例

$.ajax({
            type:"POST",
            beforeSend: function (request)
            {
                request.setRequestHeader("Token", authorizationToken);
            },
            url: "entities",
            data: "json=" + escape(JSON.stringify(createRequestObject)),
            processData: false,
             success: function(data, textStatus, request){
                  alert(request.getResponseHeader('some_header'));
             },
    });
于 2016-04-25T18:24:55.943 回答