Search code examples
httperror-handlingvue.jshttp-status-code-500

VueJS HTTP request error 500 Handling


I am having this problem where I make HTTP Request to the API and in case of error ( specially error 500) the JS just breaks or goes into infinite loop and I should close the window and re-open the page. What I need is a message to pop up and in very generic way explain what happened. How should I handle this kind of error any ideas?

Example Request:

this.$http.get('people', { params }).then(({ data }) => {

            this.setFetching({
                fetching: false
            })
        })

Solution

  • then accepts a second callback to handle errors. You can also supply a .catch in addition to a .then to handle more severe failures.

    new Vue({
      el: '#app',
      data: {
        fetching: true
      },
      mounted() {
        this.$http.get('people')
          .then(() => {
              this.setFetching({
                fetching: false
              })
            },
            (err) => {
              console.log("Err", err);
            })
          .catch((e) => {
            console.log("Caught", e);
          })
      }
    });
    <script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.2.6/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/vue.resource/1.2.1/vue-resource.min.js"></script>
    <div id="app">
    </div>