Search code examples
javascriptjsonsyntax-errormagento2

Uncaught SyntaxError: Unexpected token u in JSON at position 0


Only at the checkout and on individual product pages I am getting the following error in the console log:

VM35594:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at run (layout.min.js:9)
    at app.min.js:1
    at main.min.js:2
    at Object.execCb (require.min.js:112)
    at Module.check (require.min.js:56)
    at Module.<anonymous> (require.min.js:72)
    at require.min.js:11
    at require.min.js:74
    at each (require.min.js:3)

I am using a one page checkout extension, but when I disable that the error still shows. I thought it might had something to do with the reviews on the product page (as I moved the reviews out of the tabs), but undoing that change didn't fix the error on the product pages.


Solution

  • Try this in the console:

    JSON.parse(undefined)
    

    Here is what you will get:

    Uncaught SyntaxError: Unexpected token u in JSON at position 0
        at JSON.parse (<anonymous>)
        at <anonymous>:1:6
    

    In other words, your app is attempting to parse undefined, which is not valid JSON.

    There are two common causes for this. The first is that you may be referencing a non-existent property (or even a non-existent variable if not in strict mode).

    window.foobar = '{"some":"data"}';
    JSON.parse(window.foobarn)  // oops, misspelled!
    

    The second common cause is failure to receive the JSON in the first place, which could be caused by client side scripts that ignore errors and send a request when they shouldn't.

    Make sure both your server-side and client-side scripts are running in strict mode and lint them using ESLint. This will give you pretty good confidence that there are no typos.