Проблема XMLHttpRequest - PullRequest
       7

Проблема XMLHttpRequest

2 голосов
/ 08 апреля 2010

Я пытаюсь сделать «POST» с XMLHttpRequest в расширении Firefox, и после этого я пытаюсь получить заголовок «Location» и открыть его в новой вкладке. По какой-то причине XMLHttpRequest не содержит заголовок местоположения.

Мой код

function web(url,request)
{
    var http = new XMLHttpRequest();
    http.open('POST',url,true);
    http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    http.onreadystatechange=function() {
    if(http.readyState == 2) {
        alert(http.getResponseHeader("Location"));
        }
    }
    http.send(request);
}

Кроме того, если я изменю предупреждение на getAllResponseHeaders (), чтобы увидеть все заголовки, я просто не вижу там заголовка местоположения. Если я пытаюсь шпионить по запросу исходного сайта с помощью Firebug, он показывает мне заголовок местоположения в ответе. Пожалуйста, помогите мне решить мои проблемы. Спасибо:)

P.S. Я также не могу открыть ссылку в новой вкладке с помощью window.open(url, this.window.title);, но поскольку это не имеет прямого отношения к остальной части этого, я опубликую отдельный вопрос, чтобы спросить об этом.

1 Ответ

2 голосов
/ 09 апреля 2010

Я думаю, что текущие реализации XHR являются Location: agnostic. Другими словами, поскольку XHR прозрачно выполняет перенаправления HTTP таким образом, который невидим для вашего кода, я подозреваю, что весь восковой шарик XHR был сделан Location: agnostic и что заголовок просто удаляется.

[править] На самом деле, теперь, когда я думаю об этом, если XHR следует за перенаправлением, то не заголовки ответа на перенаправление, которое вы видите, а не заголовки самого перенаправления

...