javascript - POST请求后的Javascript GET请求
问题描述
我有一个页面,它使用一个函数从数据库 (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 响应时遇到了解析错误。
感谢帮助
解决方案
推荐阅读
- html - 使父级适应 CSS 中子级的最大大小
- kendo-ui - 剑道摘要任务没有里程碑图标
- node.js - 如何在用户 ID 的帮助下找到数组中的对象..?
- azure-devops - 在 AzureDevops 中发布测试结果挂起
- spring-boot - 在集成测试开始之前运行 Firestore 模拟器
- sql - SQL Oracle .. 更新表的最新值
- git - 如何将 Git 存储库重置为第一次提交之前的状态?
- python - 根据 OSM 高速公路=* 键:maxspeed 使用 OSMnx 评估行驶时间。可能的?
- php - Laravel Excel 导入“模型”函数没有被调用
- jquery - Ajax.click 网站上的功能按钮没有做任何事情