簡體   English   中英

XMLHttpRequest有時不發送字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM