我正在构建一个非常简单的webapp。我今天安装了Couch 1.3.1并创建了一个数据库。我试图将文档保存到我的本地沙发(本地主机:5984)与客户端浏览器也localhost上一个职位,但不同的端口(6789)CouchdB Jquery Ajax POST CORS
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
我可以看到所有这些变化反映在蒲团配置文件中列出couchdb spec。我也有卷曲测试数据库:
curl -X POST localhost:5984/commute -H "Content-Type: application/json" -d '{"tags":"sure","name":"made it"}'
的卷曲工作得很好,但我不能做,因为访问控制的浏览器类似的职位允许起源。还有什么我错过了,或者我可以改变什么使这个POST成为可能?
我不认为jquery支持CORS,因为IE7,8和9不支持它。你使用的是什么版本的jQuery? – HMR
我正在使用jQuery 1.10.1 –
当您在浏览器(Chrome)中打开url时,您应该能够在网络选项卡中看到响应标题(按F12打开开发工具),确保它具有正确的cors。我认为你已经在使用Chrome了,因为这个错误看起来像Chrome会给你带来的错误。 JQuery应该与Cors一起工作,只要你没有使用IE <9 – HMR