Почему мои запросы запрещены на производстве, но прекрасно работают на моем локальном сервере?
Я развернул свой сайт на 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.