2017-02-20 51 views
0

我正在尝试访问以下ajax响应的位置标头。但它给了我空。我的JavaScript代码,无法获取ajax请求的位置标题?

var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST", "http://localhost:8080/openam/oauth2/authorize", true); 
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
    xmlhttp.setRequestHeader("Cache-Control", "no-cache"); 
    xmlhttp.withCredentials = true; 

    xmlhttp.onreadystatechange = function() {//Call a function when the state changes. 
      if(this.readyState == this.HEADERS_RECEIVED) { 
       alert(xmlhttp.getResponseHeader("Location")); 
     } 
    } 

    xmlhttp.send(params); 

以下是我corrosponding选项和POST请求,

选项请求

OPTIONS /openam/oauth2/authorize HTTP/1.1 
Host: localhost:8080 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Access-Control-Request-Method: POST 
Access-Control-Request-Headers: cache-control 
Origin: http://127.0.0.1:4000 
Connection: keep-alive 

选项响应

HTTP/1.1 200 
Access-Control-Allow-Origin: http://127.0.0.1:4000 
access-control-allow-credentials: true 
Access-Control-Max-Age: 10 
Access-Control-Allow-Methods: POST 

Access-Control-Allow-Headers: iplanetdirectorypro,cookie,origin,x-requested-with,access-control-request-headers,x-openam-password,content-type,location,x-openam-username,access-control-request-method,cache-control,accept 

Content-Length: 0 
Date: Mon, 20 Feb 2017 17:57:34 GMT 

POST请求

POST /openam/oauth2/authorize HTTP/1.1 
Host: localhost:8080 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
Cache-Control: no-cache 
Referer: http://127.0.0.1:4000/login.htm 
Content-Length: 139 
Origin: http://127.0.0.1:4000 
Cookie: amlbcookie=01; 

邮政响应

HTTP/1.1 302 
Access-Control-Allow-Origin: http://127.0.0.1:4000 
access-control-allow-credentials: true 
access-control-expose-headers: Access-Control-Allow-Origin,Access-Control-Allow-Credentials,Set-Cookie,Date,Location 
Cache-Control: no-store 
Date: Mon, 20 Feb 2017 17:57:34 GMT 
Accept-Ranges: bytes 
Location: http://localhost:8080?code=669b8303-d8cd-4e01-90ad-7cb89007fc65&scope=address%20openid%20profile%20email 

访问控制允许报头&访问控制展露报头可适当位置值。但为什么我不能访问位置标题?

+0

请勿包含文字图像;只是包括文字。你看到视图源按钮?点击它,然后将该文本复制并粘贴到问题中。 –

+0

@Mike:我改变了它 – maamaa

回答

1

你不能得到Location头,因为浏览器会透明遵循它,从而使XHR最终处理的响应是下一个一个(这不会有Location头)。

+0

我无法停止重定向过程并获取位置标题吗? – maamaa