Я новичок в Django и работаю над небольшим проектом, где клиент JQuery отправляет запрос JSON (имя пользователя и пароль) на страницу моего сервера DJango. Но Джанго каждый раз выдает ошибку 403. Это ошибка, которую я получаю:
POST /html/localhost HTTP/1.1" 403 2326
Это разочаровывает, так как это очень базовая настройка, которая включает в себя взаимодействие клиента <-> с сервером.
Моя клиентская форма:
<form id="loginForm" action="vs.djangoserver" method="post">
User: <input type="text" name="username" />
Pass: <input type="password" name="password" />
<input type="submit" value="Submit" />
vs.djangoserver отображается правильно (или я так думаю), и я могу перейти к нему с помощью тестового сервера Django.
Код JQuery, который отправляет поля формы в виде JSON, находится здесь:
$.ajax({
type: "POST",
url: formAction,
data: printableJSONStr,
dataType: "json",
beforeSend: function(x,y) {
if (x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
success: post_submit
});
Что меня смущает, так это как разместить POST на странице, которую Django создает и обслуживает на лету. Я в восторге от защиты Джанго от CSRF, и я добавил это к мнению моего Джанго:
from django.views.decorators.csrf import
@csrf_exempt
def .......
Еще одна вещь, которую я попробовал, - указать на несуществующее действие в клиентской форме. В этом случае я получил ту же ошибку 403 (вместо 404, как я ожидал).
Я ищу простой (но полный) пример, в котором JQuery указывает на страницу django, и она работает!