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 回答