检索Dojo 1.6中的响应标头

问题描述:

如何检索Dojo 1.6中的响应标头? dojo.xhr返回一个dojo.Deferred对象,当我使用then()注册一个闭包时,第一个参数只包含响应主体。我知道这些头文件在ioArgs属性中,但我无法从封闭内部到达它。我是否以错误的方式接近了这个?检索Dojo 1.6中的响应标头

最好的问候, CQQL

因此,这里是我如何解决它使用闭包:

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

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

但对于一个干净的解决方案ioArgs绝对应该作为响应对象的一部分进行传递。

+0

我在Firebug上检查过'ioArgs'并且没有响应标题的对象:\。仅供参考我正在运行Dojo 1.7 – 2012-12-11 21:21:45

也许你可以这样做:

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

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

我不认为ioArgs作为封闭传递给deferred.then的第二个参数,它会更容易,并且会更有意义。

+0

问题在于dojo1.6没有记录句柄。所以它似乎被弃用。 – CQQL 2011-06-13 22:32:04

+0

我现在不能回答我自己的问题(声誉...),但我解决了它,并且明天会发布答案:) – CQQL 2011-06-13 22:36:40

+0

句柄未被弃用,您可以在本教程中查阅Dojo 1.6:http:/ /dojotoolkit.org/documentation/tutorials/1.6/ajax/ – faken 2011-06-13 22:48:52