フロリアンの回答に基づいて作成します-ここでいくつかのエラーを指摘したときに彼が回答を削除したため、履歴で彼の回答をざっと読んでください。彼はドキュメント更新ハンドラーに関する記事をここに、例をここに提案しました。少なくとも 2 つの問題があります。ここでの XMLHttpRequestは、オブジェクトではなく文字列を取ります。詳細な調査のために、彼の回答を編集して XMLHttpRequest マニュアルを追加しましたが、何らかの理由で誰かが編集をキャンセルしました。だから私は自分自身の答えを作っていますが、私はまだ解決しようとしているDOM 11を苛立たせています。
// By this function we solve the problem with Object,
// changing JSON -object to string. The source is:
// https://stackoverflow.com/questions/111529/create-query-parameters-in-javascript
function EncodeQueryData(data)
{
var ret = [];
for (var d in data)
ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
return ret.join("&");
}
// We use ready CouchDB -example, source:
// http://wiki.apache.org/couchdb/HTTP_Document_API#PUT
var datas = {
"Subject":"I like Plankton",
"Author":"Rusty",
"PostedDate":"2006-08-15T17:30:12-04:00",
"Tags":["plankton", "baseball", "decisions"],
"Body":"I decided today that I don't like baseball. I like plankton."
};
// We use the default -function, please, see the O'Reilly.
// https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest
var xhr = new XMLHttpRequest();
// This may be wrong
xhr.open( 'POST', 'test.js', true );
xhr.setRequestHeader( 'Content-Type', 'application/json' );
xhr.open( 'POST', '127.0.0.1:5984/test/559c327683fe0acb96aff72bd174c258', true);
var msg = EncodeQueryData(datas);
xhr.send(msg);
TODO
- 現在、XMLHttpRequest は「ネストされたオブジェクトを処理しません」というエラーが 1 つありますが、文字列であるため、より複雑なコマンドまたは XMLHttpRequest を使用した配列が必要です。これを手伝ってくれた C.*rk に感謝します。
- おそらくtest.jsに関連しており、調査中のエラー:
"XMLHttpRequest cannot load %3127.0.0.1:5984/test/559c327683fe0acb96aff72bd174c258. Cross origin requests are only supported for HTTP. Error: NETWORK_ERR: XMLHttpRequest Exception 101"
関連パズル
- [解決済み] JSON ヘッダーを使用した XMLHttpRequest の初期化での DOM 11 エラーの説明