Redirect to Another Page Using JavaScript

Pieter E.

The Problem

You need to redirect a user to another page using JavaScript and the DOM. The redirect might even need to be conditional, like after you made an API call to add a user to a mailing list and the user was successfully added.

    if (api.response.success) {
        // Need some way to take the user to a new page here
    } else {
        // Show API response error message
    }

Generally, an HTTP response is the best option for redirecting, with HTML <meta> elements being the second-best option, but perhaps neither are available to you, or they don’t fit into the user experience you are trying to create.

The Solution

Navigating to a new page can be done using window.location.assign().

    if (api.response.success) {
        // Redirect to success page
        window.location.assign("https://yourdomain.com/success");
    } else {
        // Show API response error message
    }

By using assign(), the user will be able to get back to the landing page using the “back” button, as this does not change the browser’s history.

An alternative solution, which will replace the current page in the browser history just like HTTP redirects, is to use window.location.replace().

    if (api.response.success) {
        // Redirect to success page
        window.location.replace("https://yourdomain.com/success");
    } else {
        // Show API response error message
    }

This solution may not be ideal for something like a mailing list landing page, or any page where it’s important to preserve the “back” button’s behavior, as this will replace the user’s history. To preseve the “back” button behavior, rather use assign().

Further Reading

Join the discussionCome work with us
Share on Twitter
Bookmark this page
Ask a questionImprove this Answer

Related Answers

A better experience for your users. An easier life for your developers.

Try Sentry For FreeRequest a Demo
    TwitterGitHubDribbbleLinkedin
© 2022 • Sentry is a registered Trademark
of Functional Software, Inc.