Почему мои запросы запрещены на производстве, но прекрасно работают на моем локальном сервере?

Я развернул свой сайт на railway.app всего 2 дня назад, но сегодня я заметил, что не могу отправить ни одной формы на сервер. Я просто получаю ошибку 403 (Forbidden). Но я могу отправлять формы, когда он работает на моем локальном хосте (127.0.0.1).

Я использую Django и вот как выглядит мой html:

<form id="subscribe">
    {% csrf_token %}
    <div class="mb-3">
        <input id="email" name="email" type="email" placeholder="Enter E-mail">
    </div>
    <input type="submit" value="subscribe">
</form>

Я отправляю форму, используя (чистый) JavaScript, я делаю это, чтобы страница не перезагружалась. Вот мой код JavaScript:

document.querySelector("#subscribe").onsubmit = event => {
    event.preventDefault();
    subscribe();
}

function subscribe() {

    if (document.querySelector("#email").value === "") {
        return false;
    }

    else {
        const email = document.querySelector("#email").value;   
    }
    
    const aj = new XMLHttpRequest;
    const csrfToken = document.querySelector("input[name='csrfmiddlewaretoken']").value;

    aj.onreadystatechange = () => {
        if (aj.readyState === 4) {
            if (aj.status === 409) {
               // Do something
               console.log("Conflict");
            }
            else if (aj.status === 200) {
               // Do something
               console.log("Success")
            }
            else {
                // Do something
                console.log(`${aj.status} error occurred!`);
            }
        }
    }

    data = JSON.stringify({
        email: email
    });

    aj.open("POST", "/subscribe", true);
    aj.setRequestHeader("Data-type", "json");
    aj.setRequestHeader("Content-type", "application/json");
    aj.setRequestHeader("X-CSRFToken", csrfToken);
    aj.send(data);
}

Я не считаю нужным делиться своим кодом на views.py, потому что он вообще не запускается, сервер просто запрещает любой запрос, который несет данные формы.

Я не уверен, было ли что-то, что я должен был сделать перед развертыванием, потому что это работает нормально, если я запускаю код на localhost, кстати, DEBUG также установлен на FALSE.

Вернуться на верх