POST请求后的Javascript GET请求

时间:2021-03-14 19:33:55

标签: javascript http

我有一个页面,它使用一个函数从数据库 (get_worktime_list()) 中通过 GET xhttp 请求获取一些数据。 在同一页面上,我可以使用 POST xhttp 请求通过表单向数据库添加一些数据,成功后(保存在响应中)我将使用相同的函数 get_worktime_list() 从数据库中获取包含新行的内容.

问题是在 POST 请求之后调用 getworktime 时,get_worktime_list() 会发出另一个 POST 请求而不是 GET。为什么???

function http_request(post_data, end_point, type)
{
    console.log("HTTP");
    var res = 0;
    //var data = "data=0&username="+stored_token.username+"&token="+stored_token.token;
    var data = "data=0&"+post_data;
    console.log(data);
    
    // Check if is valid token/username from database
    const url = "http://192.168.1.188:5000/services/"+end_point;

    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            res = JSON.parse(xhttp.responseText);
            
        }
    };

    if (type == "GET")
    {
        console.log(url+"?"+post_data);
        xhttp.open("GET", url+"?"+post_data, false);
    }
    else 
    {
        console.log("Data: "+data);
        xhttp.open("POST", url, false);
    }

    xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xhttp.send(data);
    xhttp.abort();

    return res;
}

这将数据添加到数据库

function addworktime(username,token)
{
    
    console.log("Aggiungo ore");
    var date = document.getElementById("data").value;
    var type = document.getElementById("turno").value;
    var pay = document.getElementById("paga").value;
    var emp = document.getElementById("dipendente").value;
    var ore = document.getElementById("num_ore").value;

    var data = "username="+username+"&token="+token+"&day="+date+"&turn_type="+type+"&pay="+pay+"&emp="+emp+"&ore="+ore;
    var res = http_request(data,"admin/dipendenti/addtime.php","");

    //console.log(res);
    if (res.insert_ok == 1)
    {  
        
        display_time_table(0,0,null);
        
    } else {
        console.log(res);
    }
}

该函数在页面加载时发出 GET 请求,当被 addworktime() 调用时发出 POST 请求

function display_time_table(from,to,cf)
{
    let time_list_table = document.getElementById("list-container");
    var time_list = get_worktime_list(saved_data.username,saved_data.token,from,to,cf);
    let time_table = generate_time_list_table(time_list);

    time_list_table.innerHTML = time_table;
}

function get_worktime_list(username,token,date_from,date_to,cf)
{
    
    var data = "username="+username+"&token="+token;

    if (cf != "" || cf != null)
    {
        data = data+ "&dipendente="+cf;
    }

    if (date_from != 0)
    {
        data = data +"&date_from="+date_from;
    }

    if (date_to != 0)
    {
        data = data + "&date_end="+date_to;
    }

    
    var time_list = http_request(data,"admin/dipendenti/getworktime.php", "GET");

    return time_list;
}

服务器只能接受该 API 的 GET 请求,很明显,我在解析 JSON 响应时遇到了解析错误。

感谢帮助

0 个答案:

没有答案