Shivan M.
—The SyntaxError: Unexpected token
error in JavaScript indicates that a specific language construct was expected, but something else was found. Why might I encounter this error?
This usually happens because of a typo or, in some cases, because a server or third-party service returned an unexpected response.
If this error occurs because of a typo, it is a good idea to look for code that is supposed to contain a specific language construct, for example, opening and closing braces, quotation marks, and semicolons.
In the example below, the for
loop has a comma preceding the semicolon. In this case, JavaScript expected a semicolon but found the comma instead, resulting in an error:
for (let i = 0; i < 5,; ++i) { console.log(i); }
You might encounter this error with the following message:
Syntax error: unexpected token <
In this case, it is likely that the cause of the error is a server response that is expected to be a JSON value, but has instead returned HTML.
An instance where this might occur is when a server returns a 404
page with an HTTP 200 response code.
In this scenario, the server responded with an HTML page including a 404 response, but the response status code was 200. If your code parses this response as JSON, you will encounter the above error.
This can also occur if a backend server responds with an error that is HTML formatted, with a response code that your application treats as valid. The following code example illustrates how this might happen:
async function getPosts() { const posts = await fetch('/api/posts'); if (response.status === 200) { // if the server responded with a 200 OK with an HTML formatted error, this will raise an exception const postsData = JSON.parse(response.data) } }
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
Here’s a quick look at how Sentry handles your personal information (PII).
×We collect PII about people browsing our website, users of the Sentry service, prospective customers, and people who otherwise interact with us.
What if my PII is included in data sent to Sentry by a Sentry customer (e.g., someone using Sentry to monitor their app)? In this case you have to contact the Sentry customer (e.g., the maker of the app). We do not control the data that is sent to us through the Sentry service for the purposes of application monitoring.
Am I included?We may disclose your PII to the following type of recipients:
You may have the following rights related to your PII:
If you have any questions or concerns about your privacy at Sentry, please email us at compliance@sentry.io.
If you are a California resident, see our Supplemental notice.