Получить данные в Django виде из AJAX запроса POST - PullRequest
0 голосов
/ 03 февраля 2020

Я новичок в Django и работаю над проектом, который не предусматривает использование форм в Django. У меня есть JS, который делает AJAX POST-вызов моего веб-сервиса Django, который является моим бэкэндом, и я просто хочу получить от него ответ. Однако я всегда ничего не получаю при этом. Я много искал, но не смог найти решение. Вот мой код:

Мой проект urls.py:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('home/', include('demo_app.urls')),
    path('admin/', admin.site.urls),
]

Мое приложение urls.py:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('dispatcher/', views.dispatcher, name='dispatcher'),
]

Мой views.py:

from django.shortcuts import render
from django.http import HttpResponse
from demo_app.models import VesselStatus
from django.db.models import Count
from django.views.decorators.csrf import csrf_exempt

def index(request):
    return HttpResponse("Hello world")

@csrf_exempt
def dispatcher(request):
    if request.method == "POST":
        print(request.POST.get("inputText"))
        return HttpResponse(request)

Я не хочу использовать формы, поэтому декоратор CSRF освобожден

Мой AJAX вызов:

if(individual_result.toLowerCase().includes('some text'))
    {
      console.log("Found");
      data = {
        "inputText": individual_result
      }
      $.ajax
      ({
        crossDomain: true,
        type: "POST",
        contentType: "application/json",
        url:"--address-of-local--/home/dispatcher/",
        data: JSON.stringify(data),
        dataType: 'json',
        cache: false,
        success: function(response){
          console.log(response)
        }
      })
    }

По какой-то причине я всегда получаю нулевое значение. Не знаю, в чем проблема

1 Ответ

0 голосов
/ 03 февраля 2020

Я понял. Для запросов, которые отправляются не из формы HTML, как в моем случае через вызов AJAX, он ДОЛЖЕН быть доступен с помощью request.body ТОЛЬКО

Благодаря этому ответу: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...