【问题标题】:Connection AJAX, CouchDB and JavaScript连接 AJAX、CouchDB 和 JavaScript
【发布时间】:2010-08-02 09:59:57
【问题描述】:

我在 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);
  }
 });

我总是收到空警报。

你能帮帮我吗?

【问题讨论】:

    标签: javascript ajax couchdb prototypejs


    【解决方案1】:

    这里的问题是,您的浏览器不允许您在其他网络服务器上进行查询,而不是您的脚本所在的服务器。 (Google for:同源政策)

    但是有一种通用技术可以解决这个用例。它被称为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 例如添加“?callback =?”就足够了在 URL 的末尾。

    【讨论】:

    • 谢谢。那行得通!顺便说一句,我的 couchdb 由 iriscouchcom 托管
    【解决方案2】:

    AJAX 不支持跨域脚本。所有调用都需要指向与当前文档具有相同域的 URL。 一个好的解决方案是在服务器端构建一个代理服务,它将占用本地 请求,对 couchDB 服务器进行 HTTP 调用,并返回它的响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      相关资源
      最近更新 更多