Как я могу получить запрос на почту с помощью JavaScript

У меня есть два проекта, первый - Node.JS.

        jsonobj = JSON.stringify(generateMockData)
        xhrToSoftware.send(jsonobj);
        xhrToAPI.open("POST", "http://127.0.0.1:8000/path/", true);
        xhrToAPI.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        xhrToAPI.send(jsonobj);

Он отправляет данные во второй проект Django Python. Я могу получить данные, используя мой views.py.

post_data = json.loads(request.body.decode("utf-8")) 
value = post_data.get('data')
print(value)

Но я хочу напрямую получить данные из Node.JS в мой Django Templates (javascript or jquery) возможно ли это?

например:

<script>
 //get the data that posted by the node.js
</script>

ОБНОВЛЕНИЕ:

Я пробовал использовать ответы ниже, как этот:

fetch('http://127.0.0.1:8000/path/')
    .then(response => response.json())
    .then(data => {
        console.log(data);
    })
    .catch(error => console.error(error));

но у меня ошибка, в ней говорится, что:

SyntaxError: Unexpected token '<', "<!-- 
 
<d"... is not valid JSON

Думаю, это потому, что я возвращаю html-файл в моем views.py:

def data(request):
    if request.method == 'POST':
        post_data = json.loads(request.body.decode("utf-8"))  # for simulation
        value = post_data.get('data')
    return render(request, 'waterplant/iot/data.html')

поэтому я меняю его на jsonresponse следующим образом:

def data(request):
    if request.method == 'POST':
        post_data = json.loads(request.body.decode("utf-8"))  # for simulation
        value = post_data.get('data')
        return JsonResponse({"msg": value}, status=200)

После этого у меня возникает ошибка ValueError: The view views.data didn't return an HttpResponse object. It returned None instead. Я думаю, это потому, что значение еще пустое. Как я могу предотвратить это? Если я отправляю данные с помощью Node.JS, я хочу вернуть их в виде return JsonResponse({"msg": value}, status=200) Или у вас есть идеи, как я могу получить доступ к данным непосредственно в моих шаблонах Django Python <script> here </script>

Если запрос get должен быть сделан с вашей веб-страницы, используйте fetch()

fetch('http://127.0.0.1:8000/path')
     .then((response) => response.json())
     .then((data) => console.log(data));
  • Basic js fetch()

Если вы используете метод "GET":

fetch('http://127.0.0.1:8000/path')
    .then(response => response.json())
    .then(data => {
        console.log(data);
    })
    .catch(error => console.error(error));

Если вы используете метод "POST":

fetch(`http://127.0.0.1:8000/path`, {
            method: "POST",
            headers: {"Content-type": "application/json; charset=UTF-8"},
            body: data
        })
        .then(response => response.json())
        .then(json => {
            console.log(json);
        })
        .catch(error => console.error('Error on fetch() call:\n', error));
  • Надеюсь, это может быть полезно!
Вернуться на верх