Извличане на заглавките на отговорите в Dojo 1.6

как да извлека заглавките на отговорите в Dojo 1.6? dojo.xhr връща обект dojo.Deferred и когато регистрирам затваряне с then(), първият аргумент съдържа само тялото на отговора. Знам, че заглавките са в свойството ioArgs, но не мога да го достигна от вътрешността на затварянето. Подхождам ли към това по грешен начин?

Най-добри пожелания, CQQL


person Marten    schedule 13.06.2011    source източник


Отговори (2)


И така, ето как го реших с помощта на затваряне:

var result = dojo.xhr(
    "GET",
    {
         url: "http://example.com"
    }
);

result.then(function (response) {
    console.log(result.ioArgs.xhr.getAllResponseHeaders());
});

Но за чисто решение ioArgs определено трябва да бъдат предадени като част от обекта за отговор.

person Marten    schedule 14.06.2011
comment
Проверих ioArgs на Firebug и няма обект за заглавките на отговора :\. FYI, работех с Dojo 1.7 - person Math is Hard; 12.12.2012

Може би можете да направите това:

var deferred = dojo.xhrGet({
    url: 'myurl',
    handle: function(res, io) { globalIOVar = io; }
});

deferred.then(
    function(res) {
        // Can access ioargs via globalIOVar...
    }
);

Не мисля, че ioArgs се предават като втори аргумент на затваряне, предаван на deferred. Тогава би било по-лесно и би имало повече смисъл.

person faken    schedule 13.06.2011
comment
Проблемът е, че манипулаторът не е документиран в dojo1.6. Така че изглежда е отхвърлено. - person Marten; 14.06.2011
comment
В момента не мога да отговоря на въпроса си (репутация ...), но го разреших и ще публикувам отговора утре :) - person Marten; 14.06.2011
comment
дръжката не е остаряла, можете да проверите в този урок за Dojo 1.6: dojotoolkit.org/documentation/ уроци/1.6/ajax - person faken; 14.06.2011
comment
но не е документиран в документацията на API: dojotoolkit.org/api/1.6/dojo/xhr - person Marten; 14.06.2011
comment
Това решение ще работи, но бихте искали да бъдете внимателни по отношение на обработката на глобалната IO променлива. Вероятно би било по-добре (ако е възможно) да съдържа връщането на xhrGet и .then обратното извикване в рамките на затваряне и да прави нещо като var myIOargs в това пространство, за да не го изложи в глобалното пространство. - person Brian Arnold Sinclair; 14.06.2011
comment
натоварването и грешката също не се препращат в API, странно. Независимо от това, натоварването, грешката и обработката са от съществено значение за прост xhr. Това решение разбира се е бърз хак, който със сигурност може да бъде подобрен. @CQQL, когато можеш, публикувай своето решение. С Най-Добри Пожелания. - person faken; 14.06.2011