Сбор статуса входящего вызова ofono на HTML-странице с помощью XMLHttpRequest

#python #xmlhttprequest #dbus

#python #xmlhttprequest #dbus

Вопрос:

Я хочу отправить запрос POST на monitor-ofono.py чтобы получить обратно статус и номер входящего вызова, я успешно отправляю номер телефона на dial-number.py использование XMLHttpRequest.

HTML-коды

 <p id="strData"></p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
var link = "http://0.0.0.0/cgi-bin/monitor-ofono.py";
    var Ofono = new XMLHttpRequest();
    Ofono.open("POST", link, true);
    Ofono.onreadystatechange = function ()
       {
        if(Ofono.readyState === 4) {
          if(Ofono.status === 200 || Ofono.status == 0){
               var res = Ofono.responseText;
               document.getElementById('strData').innerHTML = res;
            }
        }
}
    Ofono.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
    Ofono.send(null);
</script> 
  

monitor-ofono.py код (Ниже приведены измененные коды, чтобы сделать вопрос коротким)

 #!/usr/bin/python3

from gi.repository import GLib

import sys
import cgi
import dbus
import dbus.mainloop.glib
from gi.repository import GObject
import traceback
import json

sys.stderr = sys.stdout
print('Content-Type: text/plainnn')
print(json.dumps('Loading..'))

def property_changed(name, value, path, interface):
    iface = interface[interface.rfind(".")   1:]
    print(str(json.dumps(pretty(value))))

def added(name, value, member, path, interface):
    iface = interface[interface.rfind(".")   1:]
    print(str(json.dumps(pretty(value))))
  

Я попробовал этот способ и не смог получить никаких данных.
Я ценю любые подсказки.

Ответ №1:

Я успешно решил эту проблему, отправив POST-запрос на сервер и догнал, чтобы вызвать функцию для сбора статуса входящих вызовов и отправки результата в формате JSON клиенту.