2012-11-14 55 views
0

我想通过DOJO 1.8上的XHR.post调用URL。我需要从promise响应中捕获STATUS属性和getHeader(),但问题是,当我使用POST调用URL时,我没有任何承诺,并且当使用GET调用时,我拥有所需的所有属性,但是我只能发送请求作为POST。承诺响应适用于GET,但不适用于XHR中的POST

最奇怪的是,我在AngularJS中有另一个代码,它工作的很好,这段代码也做了同样的事情。我正在测试DOJO和AngularJS。

我需要捕获状态信息来检查它是否为201(创建),如果为true我需要catch getHeader('location')并调用从getHeader('location')拾取的URL。

看看我在道场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

我发现这个问题,我评论了线以下,现在工作得很好。

//handleAs: 'json', 
//accepts: 'application/json', 

句柄只有在您有JSON响应时才需要使用。关于“接受”我还没有找到“接受”和“接受”(里面头)之间的区别。

现在,我可以把我的信息:

console.log('location: ', response.getHeader('location')); 
console.log("status: ", response.status); 
相关问题