簡體   English   中英

PHP可以檢測到不完整的xmlhttprequest.send(data)命令嗎?

[英]Can PHP detect an incomplete xmlhttprequest.send(data) command?

我看到錯誤日志是由於發布數據似乎被截斷引起的。 調試之后,我的猜測是問題在於我們正在使用xmlhttprequest進行發布,並且用戶在發送整個發布數據之前關閉了瀏覽器。

這是我們的js代碼:

httpReq = new XMLHttpRequest();
httpReq.open("POST", url,false);
httpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpReq.send(param);

除了找出缺少的post參數之外,是否有其他方法可以檢測PHP方面的不完整發送? (因為它們是動態的,所以我們不能這樣做。)

2011-02-27編輯:

例如,客戶端發送如下消息:

&obj1_name=Greeting&obj1_type=string&obj1_value=hello&obj1_id=34

obj1_id是必填字段,用於存儲有關對象的其余詳細信息。 但有時我們會收到類似以下的字符串:

&obj1_name=Greeting&obj1_type=string

我的目標是告訴一個破碎的客戶端(即一個意思發送短字符串)之間,我們需要解決和工作的客戶端已關閉太早(即一個意思發送長字符串),我們的區別,可以避免不可避免的錯誤。

您可以看一下這個函數: connection_aborted 僅當您設置ignore_user_abort(true)此方法才有效。 現在,即使用戶單擊了中止按鈕,該腳本也將繼續運行。 然后,您必須檢查connection_aborted函數,並在必要時丟棄數據。

另一種方法是在腳本末尾保存某種標志,以將數據標記為已完全處理。 如果未設置該標志,則可以丟棄數據。

我已經意識到我們只是需要來自客戶端的更多信息才能做到這一點。 為此,我們在客戶端添加了一個已知的終止值。 如果服務器看到該參數時未設置該最終參數,則表示該提交不完整。

我不會這么想,因為PHP是服務器端的,而XmlHttpRequests是客戶端的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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