0

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

最奇怪的是我在 AngularJS 中有另一个运行良好的代码,这个代码做同样的事情。我正在测试 DOJO 和 AngularJS。

我需要捕获 STATUS 信息以检查它是否为 201(已创建),如果为真,我需要捕获 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);
    });

},
4

1 回答 1

0

我发现了这个问题,我评论了以下几行,现在工作正常。

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

只有当您有 JSON 响应时才需要使用 handleAs。关于“接受”我还没有发现“接受”和“接受”(内部标题)之间的区别。

现在我可以获取我的信息:

console.log('location: ', response.getHeader('location'));
console.log("status: ", response.status);
于 2012-11-14T18:45:08.827 回答