如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
How to retrieve XHR response code (+timestamp) of AMD'ized Dojo?
使用"旧"Dojo,可以将第二个参数ioargs
传递给Xhr请求的load
函数(请参见此处的示例6)。这个ioargs
提供了请求的时间戳和状态代码(除其他外)。
但是,我如何使用新的、"更干净"(并且向前兼容)的Dojo来实现这一点呢
不幸的是,我在当前文档中找不到任何提示。
以下应该是上面引用的示例到"新"Dojo的端口。但是,ioargs
将未定义:
require( "dojo/request/xhr", "dojo/dom", "dojo/domReady!",
function(request, dom){
// Look up the node we'll stick the text under.
var targetNode = dom.byId("getLicenseStatus");
// The parameters to pass to xhrGet, the url, how to handle it, and the callbacks.
request.get(
"{{dataUrl}}dojo/LICENSE",
{
handleAs: "text",
preventCache: true
}
).then(
function(data, ioargs){
// FIXME: ioargs is undefined
targetNode.innerHTML = "XHR returned HTTP status: " + ioargs.xhr.status;
},
function(error){
targetNode.innerHTML = "An unexpected error occurred: " + error.response.status + ": " + error.response.text;
}
);
}
);
我需要更改什么才能在加载函数中获得请求的时间戳和状态代码?
request
返回一个特殊的promise
(来源):
从dojo/request调用返回的promise有一个标准promise不可用的附加属性:response。这个属性是一个承诺,它将解析为一个冻结的对象(如果可用),更详细地描述响应:
- url–用于发出请求的最终url(附带查询字符串)
- options–用于发出请求的options对象
- text–响应中数据的字符串表示
- data–响应中已处理的数据(如果指定了handleAs)
- getHeader(headerName)–用于从请求中获取标头的函数;如果提供程序不提供标头信息,此函数将返回null
因此,您应该将.then
链接到此promise.response
以访问上述所有属性:
var promise = request.get("{{dataUrl}}dojo/LICENSE");
promise.response.then(function(response) {
console.log("status", response.status);
console.log("url", response.url);
console.log("data", response.data);
});
请参阅jsFiddle上的一个工作示例:http://jsfiddle.net/phusick/6wB2L/
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- javascript时间戳插入字符串变量
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 事件时间戳谷歌分析
- 时间戳到文本
- Unix时间戳从现在输出为1970
- 如何使用javascript在嵌入式youtube视频上创建可点击的时间戳链接
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- 时间戳日期时区问题在dojo