#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 клиенту.