2017-02-20 19 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 и почтовые запросы,

Опция Запрос

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-заголовки доступны с правильным значением Местоположение. Но почему я не могу получить доступ к заголовку местоположения?

+0

Пожалуйста, не включайте изображения текста; просто включите текст. Вы видите кнопку источника просмотра? Нажмите на нее, затем скопируйте и вставьте этот текст в вопрос. –

+0

@Mike: Я изменил его – maamaa

ответ

1

Вы не можете получить заголовок расположения, потому что браузер будет прозрачно следовать, так что ответ, что XHR заканчивает обработку является следующего один (который не будет иметь заголовок Location).

+0

Могу ли я остановить процесс перенаправления и получить заголовок местоположения? – maamaa