skip to Main Content
const data = { name, price, quantity, image, desc, sup_name, email }
    fetch('https://gentle-plateau-90897.herokuapp.com/fruits', {
        method: 'POST',
        headers: {
            'content-type': 'application/json'
        },
        body:(data)
    })
        .then(res => res.json())
        .then(data => {
            console.log(data)
            window.alert('Item added')
            e.target.reset()
        })

I am trying to post a method to send data to my MongoDB database, but it throwing an error saying ‘Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0’

2

Answers


  1. Unexpected token < in JSON at position 0 means you are getting a HTML response instead of json response and you are trying to convert it to json. Check the response body in network tab in the dev tool. It might return HTML because you didn’t include Accept: application/json as header or some error happened.

    Login or Signup to reply.
  2. The error is coming due to the conversion of the res you are getting from the API. The res is something that can’t be converted to valid JSON.

    From the error, it seems that the res might be an HTML string and converting it to JSON will always yield an error. To use it, you should use innerHTML in the view.

    const data = { name, price, quantity, image, desc, sup_name, email }
        fetch('https://gentle-plateau-90897.herokuapp.com/fruits', {
            method: 'POST',
            headers: {
                'content-type': 'application/json'
            },
            body:(data)
        })
            // .then(res => res.json()) // remove this line for now
            .then(data => {
                /**
                check here what type of data you are getting 
                is it valid JSON or not?
                */
                console.log(data) 
                window.alert('Item added')
                e.target.reset()
            })
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search