2011-10-25 15 views
0

MongoDBドキュメントからJSONを返すリクエストにアクセスすると、奇妙なパーサエラー(parsererror)が発生します。MongoDB _idフィールドのJquery ajaxパーサエラー

この文書では、不可解なparsererrorを返します。

{"data":{"first_name":"Ray","last_name":"Reinger","_id":4e9c0ed27763dfba37000001}} 

このドキュメントでは、エラーを返しません:

{"data":{"first_name":"Ray","last_name":"Reinger"}} 

使用されているjQueryのです:

$("#fetch").click(function(){ 
    var url = "http://localhost:3333/people/4e9c0ed27763dfba37000001"; 

    $.ajax({ 
    url: url, 
    method: 'GET', 
    success: function(data, status){ 
    //do a thing with the data 
    }, 
    complete:function(jqXHR, status) { 
    console.log(status) //displays 'parsererror' 
    } 
    }); 

    return false; 
}); 

要求自体は結構です。 返されるMIMEタイプは 'application/json'です。 すべてのフィールドと値が引用されています。 _idは私がgrokできる限り有効なJSONです。

基本的に_idのオンとオフを切り替えると動作します。

答えて

0

上記の質問を書いて、私は問題を見ました。後世と同じ問題に遭遇する可能性がある他の人のためにここに回答を投稿する。

重要な問題は、ID値が引用されていないことです。

Iは、(ネストされたハッシュを使用して)IDのデフォルトルビーMongoのドライバレンダリングをoveridingし、副作用としてID列が引用されていなかった。

class BSON::ObjectId 
    def as_json(options ={}) 
    to_s 
    end 

    def to_json(*a) 
    to_s.to_json 
    end 
end 

注の使用を* to_s。 to_json *これは、ObjectIdをJSON文字列として適切に引用します。

関連する問題