簡體   English   中英

無法獲取 ajax 請求的位置標頭?

[英]Failed to get location header of ajax request?

我正在嘗試訪問以下 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);

以下是我對應的選項和發布請求,

選項請求

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 /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

Access-Control-Allow-Headers 和 Access-Control-Expose-Headers 可以使用適當的 Location 值。 但是為什么我不能訪問 Location 標頭?

您無法獲得 Location 標頭,因為瀏覽器會透明地跟隨它,因此 XHR 最終處理的響應是一個(不會有 Location 標頭)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM