Соединение AJAX, CouchDB и JavaScript - PullRequest
       25

Соединение AJAX, CouchDB и JavaScript

5 голосов
/ 02 августа 2010

У меня небольшая проблема с AJAX, CouchDB и JavaScript.

Я могу открыть следующий URL из CouchDB в моем браузере: 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);
  }
 });

Я всегда получаюпустое оповещение.

Вы можете мне помочь?

Ответы [ 2 ]

5 голосов
/ 03 ноября 2010

Проблема здесь в том, что ваш браузер не позволяет вам делать запросы на другом веб-сервере, отличном от того, где вы запускаете скрипт.(Google для: Политика аналогичного происхождения)

Но есть некий общий метод, который является обходным решением для этого варианта использования.Это называется JSONP .Начиная с версии 1.0, вы должны сначала активировать эту функцию в CouchDB.В разделе [httpd] вашего файла конфигурации CouchDB (.ini) вы должны добавить

allow_jsonp = true

После того, как это будет сделано, вы можете создавать запросы JSONPна вашем CouchDB.По сути, добавление динамически таких строк выглядит так:

<script type="text/javascript" 
     src="http://server2.example.com/getjson?callback=parseResponse">
</script>

Но подробности см. В статье, приведенной выше.

В любом случае я предлагаю на стороне JavaScript использовать Framework как jQuery, DojoToolKitЭСТ.Например, в jQuery достаточно добавить «? Callback =?»в конце URL.

3 голосов
/ 02 августа 2010

AJAX не поддерживает междоменные сценарии. все вызовы должны быть на URL с тем же доменом, что и у текущего документа. хорошим решением было бы создать прокси-сервер на стороне сервера, который будет принимать локальный запросить, сделать HTTP-вызов на сервер couchDB и вернуть ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...