非常に単純な webapp のプロトタイプを作成しています。今日、Couch 1.3.1 をインストールして、データベースを作成しました。localhost でもクライアント ブラウザーから POST を使用してローカル カウチ (localhost:5984) にドキュメントを保存しようとしていますが、ポート (6789) が異なります。
var dbIp = "http://localhost:5984/commute";
var data = {state:0,timestamp:"faketime"};
$.ajax({
type: 'POST',
crossDomain: true,
contentType: "application/json",
url: dbIp,
data: data,
success: function(result) {
console.log(result);
}
});
私は得る:
XMLHttpRequest cannot load http://localhost:5984/commute-tracker. Origin http://localhost:6789 is not allowed by Access-Control-Allow-Origin.
私は local.ini を変更して CORS を有効にしました。
[httpd]
enable_cors = true
[cors]
origins = *
[cors]
methods = GET, POST, PUT, DELETE
これらの変更はすべて、futon の構成ファイルに反映されていることがわかります。また、curl を使用してデータベースをテストしました。
curl -X POST localhost:5984/commute -H "Content-Type: application/json" -d '{"tags":"sure","name":"made it"}'
curl は問題なく動作しますが、Access Control Allow Origin が原因で、ブラウザーで同様の POST を作成できません。他に何が欠けていますか、またはこの POST を可能にするために何を変更できますか?