我不确定为什么会这样,但我会尽量解释我已经知道的事情。 我有一个网站,允许您使用存储在数据库中的帐户登录。每个用户都可以更新同样位于同一数据库中的数据集。 当用户更改数据时,Javascript会将XMLHttpRequest发布到服务器上的php文件中。数据是JSON编码的,并在php文件中解码,然后将数据存储在数据库中。
问题是每当我登录特定帐户时,都不会发送任何数据。发送请求后,该字符串为空。帖子工作和php文件运行但没有数据存在。这是我在JS中发送请求的代码:
function sendXMLHttpRequest(data, phpfile){
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
else {
throw new Error("Ajax is not supported by this browser");
}
xhr.open('POST', phpfile, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
if (this.responseText !== null)
document.getElementById('saveresponse').innerHTML = xhr.responseText;
else
alert("Ajax error: No data received");
}else alert("Ajax error: " + this.status);
}
};
xhr.send(data);
}
在php方面:
session_start();
$mysql = new Mysql();
$data = json_decode($_POST['stringData']);
echo 'Data: ' . $data . "<br />";
通常当我回显数据时返回Array
这是我想要的但是当我登录这个特定帐户时它没有回应任何东西,发送的数据只是一个字符串{{ 1}}是一个JSON。有没有办法看看是否存储了任何东西?如果没有发送任何内容,为什么会这样呢?对我的代码有任何建议吗?
答案 0 :(得分:1)
确保通过添加随机参数来缓存请求:
querystring = 'validate=' + validate+ "&rand=" + new Date().getTime();