Python Облачная функция Google и JavaScript Опубликовать запрос - PullRequest
1 голос
/ 25 марта 2020

У меня есть облачная функция Python со следующим кодом:

import requests
import json

def make_func(request):

     if request.method == 'OPTIONS':
          headers = {
               'Access-Control-Allow-Origin': '*',
               'Access-Control-Allow-Methods': 'GET, POST',
               'Access-Control-Allow-Headers': 'Content-Type',
               'Access-Control-Max-Age': '3600',
               'Content-Type': '*',
               'Content-Length': "3000"
          }

          return ('', 204, headers)

     request_json = request.get_json()
     print(request_json) #THIS SHOWS "NONE" IN THE LOGS

     domain = request_json['domain']

     headers = {
               'Access-Control-Allow-Origin': '*',
               'Content-Type': '*',
               'Content-Length': "3000"

     }    
     return (str(domain)), 200, headers)

Я хочу отправить json данные с JavaScript xhr после запроса этой функции. Код JS следующий:

const data = {
  domain : "test.com"
}

var domain = "blabla.com";
var xhr = new XMLHttpRequest();
xhr.open('POST', domain, true);
xhr.send(data);
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
     var result = xhr.responseText;
     alert(JSON.stringify(result));
  }
}

Если я просматриваю журналы своего GCF и распечатываю запрос, он говорит: «Нет». Он не может найти переменную "domain" в переменной запроса в python. Почему это не работает?

1 Ответ

1 голос
/ 25 марта 2020

Вы должны установить заголовок:

 xhr.setRequestHeader('Content-Type','application/json');
 xhr.send(JSON.stringify(data));
...