I'm trying to access location header of the following ajax response. But it gives me null. My javascript code is,
我正在尝试访问以下ajax响应的位置标头。但它让我无效。我的javascript代码是,
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);
Following are my corrosponding options and post requests,
以下是我的相关选项和发布请求,
Option Request
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
Option Response
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 Request
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;
Post response
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
Access-Control-Allow-Headers & Access-Control-Expose-Headers are available with proper Location value. But why can't i access Location header?
Access-Control-Allow-Headers和Access-Control-Expose-Headers具有适当的位置值。但为什么我不能访问Location标头?
1 个解决方案
#1
0
You can't get the Location header because the browser will transparently follow it, so the response that XHR ends up processing is the next one (which won't have a Location header).
您无法获取Location标头,因为浏览器将透明地跟随它,因此XHR最终处理的响应是下一个(它没有Location标头)。
#1
0
You can't get the Location header because the browser will transparently follow it, so the response that XHR ends up processing is the next one (which won't have a Location header).
您无法获取Location标头,因为浏览器将透明地跟随它,因此XHR最终处理的响应是下一个(它没有Location标头)。