我找到了答案here https://stackoverflow.com/questions/2099728/how-do-i-send-an-ajax-request-on-a-different-port-with-jquery对于下面的问题。
我需要在 apache 中设置反向代理,通过将以下行添加到我的虚拟主机大约需要 2 分钟;
代理通行证 /couchdb/http://道场:5984/ http://dojo:5984/
由于同源策略,您无法跨端口发布数据。我知道这适用于域,但不适用于不同的端口,因此您设置了反向代理。
我想知道如何使用 JavaScript 或 jQuery 将数据发布到 couchDB。
我跟着这个tut http://net.tutsplus.com/tutorials/getting-started-with-couchdb/并创建了一个数据库,我可以使用curl发布和获取数据,一切正常。下面有我使用的curl 示例。
我还可以使用 jQuery 获取数据,但我不知道如何 POST 到 CouchDB
卷曲-X GEThttp://127.0.0.1:5984/mycouchshop/_all_docs http://127.0.0.1:5984/mycouchshop/_all_docs.
卷曲-X POSThttp://127.0.0.1:5984/mycouchshop/ http://127.0.0.1:5984/mycouchshop/-d @person.json -H“内容类型:application/json”
我能够使用 jQuery 获取和显示数据。下面的代码工作正常。
$.ajax({
url : 'http://couchdb:5984/mycouchshop/_design/peoples/_view/people',
type : 'GET',
dataType : "jsonp",
success : function(json) {}
});
但发布数据会导致405 不允许的方法
$.ajax({
url : 'http://couchdb:5984/mycouchshop/',
data : {"forename": "Bob", "surname": "McHamster", "type": "person"},
contentType : "application/json",
type : 'POST',
dataType : "json",
success : function(resp) {}
});