有没有办法将数据添加到在另一个域上运行的couchdb并返回响应操作是否成功?我知道couchdb支持jsonp回调但是我可以用这种方法添加数据吗?
Mar*_*ell 10
不,你现在不能这样做.CouchDB的REST API需要POST或PUT请求才能插入数据,但JSONP仅支持GET请求.因此,您可以跨域检索 CouchDB中的数据,但更新/插入/删除将不起作用.
您可以使用客户端javascript创建表单来执行POST,将输出定向到iframe,并使用跨窗口iframe消息传递来获取结果.
当然,有人已经建立了一个很好的JavaScript库来做到这一点.获取代码:https: //github.com/benvinegar/couchdb-xd
按照说明将其作为附属数据库推送到couchdb服务器上.然后,在任何网站上,包括一个不在"你的沙发服务器"域中的网站,你可以执行以下操作(只需在javascript控制台中试用):
jQuery.getScript(
"http://YOUR-COUCH-SERVER/couchdb-xd/_design/couchdb-xd/couchdb.js",
function() {
Couch.init(
function() {
var s = new Couch.Server('http://YOUR-COUCH-SERVER/');
var d = new Couch.Database(s,'YOURDB');
d.put(
"stackoverflow-test 1",
{ foo: 111, bar: 222 },
function(resp) {
console.log(resp);
}
);
}
)
}
);
Run Code Online (Sandbox Code Playgroud)
以上假设你已经在页面上加载了jquery.如果没有,您需要添加它,但是您当前正在与其他页面进行交互.
该库仅适用于支持window.postMessage()的现代浏览器,尽管小补丁最终可能允许旧版浏览器通过src/hash通信使用它.
| 归档时间: |
|
| 查看次数: |
2896 次 |
| 最近记录: |