私はサーバー上のRESTful APIと通信するためにDojo JsonRESTストアを使用しています。非同期コールバックハンドラを使用すると、GETメソッドとQUERYメソッドがうまく機能します。しかし、JsonRESTストアに新しいオブジェクトをポストするPUTリクエストは、非同期コールバック機能を持っていないようです。 PUT要求が完了して成功した場合にのみイベントを発生させることは不可能です。Dojo:コールバック・メソッドを使用してjsonRestストアでPUT要求を行う方法
require(["dojo/store/JsonRest"], function(JsonRestStore){
var store = new JsonRestStore({target: "/Table/" });
store.get(3).then(function(object){
// CALLBACK HERE :-)
});
store.query("foo=bar").then(function(results){
// CALLBACK HERE :-)
});
store.put({ foo: "bar" }, { id: 3 }); // NO CALLBACK CAPABILITIES ???
store.remove(3); // NO CALLBACK CAPABILITIES ???
});
任意のアイデア:ドキュメント(http://dojotoolkit.org/reference-guide/1.7/dojo/store/JsonRest.html)から
?
おかげ
あなたは正しいです。ソースコードを見ると、返されたオブジェクトはDeferredであることがわかります。しかし、バグ(Dojo 1.8で修正予定)は、 'store.put({foo:" bar "}、{id:3})のようにヘッダ応答を返すことを不可能にします。メッセージ、ioArgs){}); 'ここで' ioArgs'は未定義です。 –
var deferred = put(item); deferredオブジェクトを取得します。次に、コールバックを追加して、ioArgsのxhrオブジェクトにアクセスします。def.addCallback(function(mess、io){ console.log(io); console.log(mess); console.log(def.ioArgs.xhr.getAllResponseHeaders()); }); –