Question

I am trying to call a URL through XHR.post on the DOJO 1.8. I need catch the STATUS property and getHeader() from promise response, but the problem is, when I call my URL with POST I don't have any promise, and when I call with GET I have all properties that I need, but I only can send the request as POST.

The most strange is that I have another code in AngularJS which works well, this code does the same thing. I am testing DOJO and AngularJS.

I need catch the STATUS information to check if it is 201(created), if true I need catch getHeader('location') and call the URL that I picked up from getHeader('location').

Look at my method in 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);
    });

},
Était-ce utile?

La solution

I discovered the problem, I commented the lines followings and now works fine.

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

The handleAs you need to use only when you have a JSON response. About "accepts" I haven't found what difference between "accept" and "Accept"(inside headers) yet.

Now I can take my informations:

console.log('location: ', response.getHeader('location'));
console.log("status: ", response.status);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top