2

mootools と JsonP を使用すると、Firefox エラー コンソールに「無効なラベル」エラーが表示されます

JsonPは動作しているようです(データを正しく取得しています)

{"jsondata":[{"title":"title1","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/17_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:26:00",},{"title":"title2","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/16_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:08:09",}]}

しかし、「jsondata」で無効なラベルエラーが発生します

同じファイルが request.json でうまく機能します


カンマが削除されました...何もありません

これは私が使用しているコードです

window.addEvent('domready', function() {

var gallery = $('gallery'); 

new JsonP('http://myjsoncodeurl',{
        onComplete: function(jsonObj) {
            addImages(jsonObj.jsondata);
        }
    }).request();

var addImages = function(images) {
    images.each(function(image) {
        var el = new Element('div', {'class': 'item'});
        var name = new Element('h3').inject(el);
        var a1 = new Element('a', {'href': image.link,'html': image.title}).inject(name);                       
        var desc = new Element('span', {'html': image.description}).inject(name, 'after');
        var a2 = new Element('a', {'href': image.link}).inject(desc,'after');               
        var img = new Element('img', {'src': image.thumbsrc}).inject(a2);
        el.inject(gallery);
    });
};

});

通常の request.Json で動作しますが、私のコードが気に入らない JSONP :(

4

4 に答える 4

11

同じファイルが request.json でうまく機能します

JSONP では、応答は、引数として渡された JSON データを使用して JavaScript 関数呼び出し (つまり、コールバック) を返す必要があります。応答がプレーンな古い JSON テキストである場合、JSONP のコンテキストでは機能しません。コールバック引数を受け入れ、そのコールバックを JSON データで呼び出すようにバックエンドを調整する必要があります。

于 2009-09-08T19:16:12.120 に答える
5

Javascript がひどく混乱し、ラベルステートメントを実行していると考えることがあるため、オブジェクトの周りにブラケット (中括弧ではなく通常のもの) を配置する必要があります。

https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Statements#label_Statement

代わりに{"jsondata":[ ... ]}、 オブジェクト を渡してみてください 。({"jsondata":[ ... ]})それはそれを整理するようです。

于 2011-05-05T14:03:40.533 に答える
2

ここに入れる:

http://json.parser.online.fr/

有効であることを示していますが、余分なコンマがあります (これは IE を無効にしますが、FF はそれを処理する必要があります)。カンマを削除しても問題が解決しない場合は、エラーを見つけやすくするためにコードをさらに投稿する必要があります。

于 2009-04-09T17:47:42.727 に答える
0

これは、日付の後に余分なコンマが原因である可能性があります

于 2009-04-09T17:43:54.200 に答える