我试图通过DOJO 1.8上的XHR.post调用URL。我需要从promise响应中捕获STATUS属性和getHeader(),但问题是,当我用POST调用我的URL时,我没有任何承诺,当我使用GET调用时,我拥有所需的所有属性,但是我只能以POST发送请求。
最奇怪的是我在AngularJS中有另一个代码,它运行良好,这段代码做同样的事情。我正在测试DOJO和AngularJS。
我需要捕获STATUS信息以检查它是否为201(已创建),如果为true我需要捕获getHeader('location')并调用我从getHeader('location')获取的URL。
看看我在Dojo 1.8中的方法:
checkCreation: function(typeFile, id){
var promise = xhr('/rest/list/one', {
handleAs: 'json',
method: 'post',
accepts: 'application/json',
headers: {
Accept: 'application/json',
id: id,
type: typeFile
}
});
promise.response.then(function(response) {
console.log("status", response.status);
console.log("options", response.options);
console.log("url", response.url);
console.log("timestamp", response.options.timestamp);
console.log(response);
});
},
答案 0 :(得分:0)
我发现了这个问题,我评论了以下几行,现在工作正常。
//handleAs: 'json',
//accepts: 'application/json',
句柄您只有在有JSON响应时才需要使用。关于“接受”我还没有发现“接受”和“接受”(内部标题)之间有什么区别。
现在我可以接受我的信息:
console.log('location: ', response.getHeader('location'));
console.log("status: ", response.status);