2010-08-02 3 views
5

У меня есть небольшая проблема с AJAX, CouchDB и JavaScript.Подключение 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); 
    } 
}); 

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

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

ответ

3

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

5

Проблема заключается в том, что ваш браузер не позволяет вам делать запрос на другом веб-сервере, кроме того, где вы создаете сценарий. (Google for: Same Origin Policy)

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

allow_jsonp = истинный

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

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

Но более подробно см. Статью, приведенную выше.

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

+0

спасибо. Это сработало! Btw, мой couchdb размещен iriscouchcom – edt

Смежные вопросы