обрабатывать запрос формы с помощью Ajax в Django

-1

У меня проблема с 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/ ".

  • 0
    1-й из всех способов написания url неверен в ajax: url: '/ create',
  • 0
    URL не ошибается, его работа просто отлично, но данные не поступают
Показать ещё 3 комментария

3 ответа

0
Лучший ответ

это ответ на запись: я решаю это и его на git hub now https://github.com/mhadiahmed/tinypice

0

Я вижу здесь много проблем.

1) только для dev предложить, удалить @login_required (если есть) из вашего представления и добавить @csrf_exempt чтобы избежать этой проблемы на dev.

2) Пожалуйста, загляните внутрь request.body на ваш взгляд.

3) если точки 1 и 2 не работают, отправьте ответ сервера на этот вызов: POST localhost:8000/create 403 (Forbidden)

  • 0
    Теперь у меня есть эта ошибка в консоли: jquery-3.1.1.min.js: 4 POST localhost: 8000 / create 500 (Internal Server Error)
  • 0
    но каков ответ сервера? эта строка return JsonResponse({'nothing coming thrue'}) ошибку return JsonResponse({'nothing coming thrue'})
0

Вызовите функцию в вашем случае:

$('#main-form').on("submit"  ,function (event) {
    event.preventDefault();
    console.log('submited');
    console.log($('#msgbox').val())
    created(); 
 });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню