2
addToBasket = (id, qty) ->
    if $.cookie('basket')?
        # Basket exists
        basket = $.parseJSON($.cookie('basket'))
        basket.push( { 'id': id, 'qty': qty } )
        $.cookie('basket', JSON.stringify(basket))
    else
        # Basket doesn't exist
        alert 'Creating basket'
        basket = JSON.parse([{'id': id, 'qty': qty}])
        $.cookie('basket', JSON.stringify(basket))

私は髪を引き裂いています。(コンパイルされた同等の)関数を実行できず、常に不正なトークンエラーが発生します。不正な目に見えない文字をチェックしましたが、CR/LF 以外には何もありません。

4

1 に答える 1

1

配列を呼び出しJSON.parseています。これは、ブラウザーが実装する方法が原因で、通常の例外ではなく構文エラーと見なされるようです。あなたは本質的にこれをやっています:

JSON.parse([{id: 123}].toString())

これは次と同じです:

JSON.parse('[object Object]')

これは違法な JSON であるため、エラーが発生します。

于 2013-02-06T18:27:35.427 に答える