У меня проблема с ajax, когда я отправляю запрос из своей формы, он не получает значение из формы
это мой код просмотра
def create(request):
if request.method == 'POST':
msg_text = request.POST.get('the_massage')
data = {}
form = ChatApp(message=msg_text, user=request.user)
form.save()
data['message']=form.message
data['user']=form.user.username
return JsonResponse(data)
else:
return JsonResponse({'nothing coming thrue'})
он shod получает переменную the_massage, но дает мне нулевое значение
это моя функция ajax:
$(function () {
$('#main-form').on("submit" ,function () {
console.log("create function is here");
var form = $(this);
$.ajax({
url: form.attr('action'),
type: form.attr('method'),
data: {the_massage:$('#msgbox').val()},
dataType: 'json',
success: function(json) {
console.log(json);
console.log('success');
},
error: function(error){
console.log('we have error');
},
});
});
});
когда я консоль регистрирую значение, которое он только что запустил в консоли, пожалуйста, помогите мне и покажите мне это в консоли:
Ресурс интерпретируется как Документ, но передается с помощью приложения типа MIME/json: " http://localhost: 8000/create/ ".
это ответ на запись: я решаю это и его на git hub now https://github.com/mhadiahmed/tinypice
Я вижу здесь много проблем.
1) только для dev предложить, удалить @login_required
(если есть) из вашего представления и добавить @csrf_exempt
чтобы избежать этой проблемы на dev.
2) Пожалуйста, загляните внутрь request.body
на ваш взгляд.
3) если точки 1 и 2 не работают, отправьте ответ сервера на этот вызов: POST localhost:8000/create 403 (Forbidden)
return JsonResponse({'nothing coming thrue'})
ошибку return JsonResponse({'nothing coming thrue'})
Вызовите функцию в вашем случае:
$('#main-form').on("submit" ,function (event) {
event.preventDefault();
console.log('submited');
console.log($('#msgbox').val())
created();
});