我在使用 AJAX、CouchDB 和 JavaScript 时遇到了一点问题。
我可以在浏览器中从 CouchDB 打开以下 URL:http://192.168.1.58:5984/mydb/name
new Ajax.Request('http://192.168.1.58:5984/mydb/namee', {
method: 'POST',
onComplete: function(transport) {
alert(transport.responseText);
}
});
我总是收到空警报。
你能帮帮我吗?
最佳答案
这里的问题是,您的浏览器不允许您在其他网络服务器上进行查询,而不是您的脚本所在的服务器。 (谷歌:同源政策)
但是有一种通用技术可以解决此用例。它叫做JSONP .从 1.0 版开始,您必须首先在 CouchDB 中激活此功能。在 CouchDB 配置文件 (.ini) 的 [httpd] 部分,您必须添加一个
allow_jsonp = true
完成此操作后,您可以在 CouchDB 上生成 JSONP 查询。基本上像这样添加动态行:
<script type="text/javascript"
src="http://server2.example.com/getjson?callback=parseResponse">
</script>
但有关详细信息,请参阅上面链接的文章。
无论如何,我建议在 JavaScript 方面使用 jQuery、DojoToolKit 等框架。在 jQuery 中,例如添加“?回调=?”就足够了在 URL 的末尾。
关于javascript - 连接 AJAX、CouchDB 和 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386679/