Список CouchDB "Произошла ошибка при доступе к списку: неверный JSON" ошибка - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь вызвать список CouchDB из JavaScript.

Мой вызов jQuery:

var listItems = $.couch.db('foo').list('foo/barList', 'foo/barView'); 

Если я проверю это в консоли FireBug, когда я на страницес загруженным файлом jquery.couch.js (например, Futon) он возвращает именно то, что мне нужно (несколько тегов <input> с заполненными соответствующими данными).

Однако, когда я вызываю это из кода, я получаюошибка:

An error occured accessing the list: Invalid JSON: [the html]

... где [the html] - это HTML-код, которым я хочу манипулировать в своем скрипте.Я не понимаю, почему я получаю ошибку JSON - я думал, что смысл списков в том, чтобы вернуть HTML.Есть ли способ заставить его вернуть мой HTML мне?

Кроме того, моя функция списка включает следующее, поэтому я не уверен, почему это не работает.

    start({
      "headers": {
      "Content-Type": "text/html"
      }
     });

1 Ответ

0 голосов
/ 02 марта 2012

Согласно https://issues.apache.org/jira/browse/COUCHDB-1059 это была признанная ошибка, и она была исправлена. Однако после внесения изменений в jquery.couch.js, рекомендованных Яном Ленхардтом на предыдущей странице, мне пришлось сделать еще одну вещь.

На странице выше рекомендуется внести следующие изменения в jquery.couch.js:

- var resp = httpData(req, "json");
+ var resp = httpData(req, dataType); 

По какой-то причине это не сработало для меня, но сработало, когда я заменил его следующим. Теоретически можно добавить обработчики для различных типов типов контента ниже.

var cType = req.getResponseHeader('Content-Type');
switch(cType) {
    case 'text/html':
        var resp = req.responseText;
        break;
    default:  
        var resp = $.parseJSON(req.responseText);
        break;
    }

Если я что-то упускаю, я приветствую рекомендации о том, как сделать это более эффективно, но это работает для меня.

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