Php
通過 AJAX 請求 POST 失敗?
我一生都無法弄清楚為什麼會這樣。
這是一種轉發(送出給stackoverflow,但可能是伺服器問題?)。
我正在執行一個名為 logOut() 的 javascript 註銷函式,該函式對 php 腳本進行了 jQuery ajax 呼叫…
function logOut(){ var data = new Object; data.log_out = true; $.ajax({ type: 'POST', url: 'http://www.mydomain.com/functions.php', data: data, success: function() { alert('done'); } }); }
它呼叫的php函式在這裡:
if(isset($_POST['log_out'])){ $query = "INSERT INTO `token_manager` (`ip_address`) VALUES('logOutSuccess')"; $connection->runQuery($query); // <-- my own database class... // omitted code that clears session etc... die(); }
現在,每天 18 小時都可以使用,但由於某種原因,每隔一段時間,POST 數據都不會觸發我的查詢。(這將持續大約一個小時左右)。我發現沒有通過在我的腳本末尾添加這個來設置文章數據……
$query = "INSERT INTO `token_manager` (`ip_address`) VALUES('POST FAIL')"; $connection->runQuery($query);
所以,現在我確定我的註銷功能被跳過了,因為在我的數據庫中有以下數據:
如果沒有被跳過,我的數據將顯示如下:
我知道它被跳過有兩個原因,一個是我的第一個函式末尾的 die(),另一個是,如果它成功,則會在表中註冊“logOutSuccess”。
有什麼想法嗎?一位朋友說這是一家簡陋的託管公司(hostgator.com)。我個人喜歡它們,因為它們很便宜,而且我是 cpanel 的粉絲。但是,如果是這樣???
提前致謝。
-J
這是唯一呼叫functions.php的腳本嗎?
不要只記錄“POST FAIL”,而是嘗試記錄 print_r( $ _POST, true) and maybe $ _伺服器
$$ ‘HTTP_REFERER’ $$. 這可能會告訴您失敗的呼叫來自哪裡。
嘗試使用 HTTP 嗅探器首先確定問題是您的 PHP 腳本還是 AJAX 程式碼。或者它可能是您不知道的客戶端條件。它可能根本不是您的 AJAX 程式碼。嗅探器將有助於消除它是否絕對是客戶端問題。