[英]Failed to get location header of ajax request?
I'm trying to access location header of the following ajax response.我正在尝试访问以下 ajax 响应的位置标头。 But it gives me null.
但它给了我空。 My javascript code is,
我的 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. Access-Control-Allow-Headers 和 Access-Control-Expose-Headers 可以使用适当的 Location 值。 But why can't i access Location header?
但是为什么我不能访问 Location 标头?
您无法获得 Location 标头,因为浏览器会透明地跟随它,因此 XHR 最终处理的响应是下一个(不会有 Location 标头)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.