0

DOJO 1.8 で XHR.post を介して URL を呼び出そうとしています。promise 応答から STATUS プロパティと getHeader() をキャッチする必要がありますが、問題は、POST で URL を呼び出すと約束がなく、GET で呼び出すと必要なすべてのプロパティがありますが、リクエストを POST としてのみ送信できます。

最も奇妙なのは、AngularJS にうまく動作する別のコードがあることです。このコードは同じことを行います。DOJO と AngularJS をテストしています。

STATUS 情報をキャッチして 201(created) かどうかを確認する必要があります。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);
    });

},
4

1 に答える 1

0

私は問題を発見し、次の行にコメントしましたが、現在は正常に動作しています。

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

JSON 応答がある場合にのみ使用する必要がある handleAs。"accepts" について "accept" と "Accept" (ヘッダー内) の違いはまだわかりません。

これで、情報を取得できます。

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