2012-03-01 5 views
0

JavaScriptからCouchDBリストを呼び出そうとしています。CouchDB list "リストへのアクセス中にエラーが発生しました:無効なJSON"エラー

私のjQueryの呼び出しは次のとおりです。

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

私はjquery.couch.jsを持っている(ふとんのように)ロードされたページだとき、私はFirebugのコンソールでこれをテストする場合、それは私がそれをしたい正確に何を返します(適切なデータが入力された複数のタグ<input>)。

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

... [the html]は、私は私のスクリプトで操作したいhtmlです:私は、コードからこれを呼び出すとき

はしかし、私はエラーを取得します。なぜ私はJSONエラーが発生しているのか理解できません。リストのポイントはHTMLを返すことだと思いました。私にHTMLを返すように強制する方法はありますか?

また、私のリスト機能には次のものが含まれているため、なぜこれが機能しないのか分かりません。

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

答えて

0

https://issues.apache.org/jira/browse/COUCHDB-1059によると、これは認識されたバグであり、パッチされていました。しかし、上記のページでJan Lehnardtが推奨している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; 
    } 

、私はより効果的にこれを行う方法の提案を歓迎するが、これは私のために動作します。

関連する問題