[英]XMLHttpRequest sometimes doesn't send string
我不確定為什么會這樣,但是我將盡我所能解釋。 我有一個網站,可讓您使用數據庫中存儲的帳戶登錄。 每個用戶都可以更新自己的也在同一數據庫中的數據集。 當用戶更改數據時,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
,但是當我登錄到該特定帳戶時,它不回顯任何內容,發送的數據只是一個字符串,其中stringData
是JSON。 有沒有辦法查看是否在其中存儲了任何內容? 另外,如果什么也沒發送,為什么會這樣呢? 對我的代碼有什么建議嗎?
通過添加隨機參數,確保請求不會被緩存:
querystring = 'validate=' + validate+ "&rand=" + new Date().getTime();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.