Chr*_*ris 5 javascript ajax couchdb prototypejs
我对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);
}
});
Run Code Online (Sandbox Code Playgroud)
我总是空洞警惕.
你能帮助我吗?
这里的问题是,您的浏览器不允许您在脚本来源的其他Web服务器上进行查询.(谷歌:同源政策)
但是有一种常见的技术可以解决这个用例.它叫做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>
Run Code Online (Sandbox Code Playgroud)
但有关详细信息,请参阅上面链接的文章.
无论如何,我建议在JavaScript方面使用框架作为jQuery,DojoToolKit等.在jQuery中,例如添加"?callback =?"就足够了 在URL的末尾.
小智 3
AJAX 不支持跨域脚本。所有调用都必须指向与当前文档具有相同域的 URL。一个好的解决方案是在服务器端构建一个代理服务,它将接受本地请求,对 couchDB 服务器进行 HTTP 调用,并返回其响应。