[英]AJAX Post Not Sending Data?
我不能為我的生活弄清楚為什么會這樣。
這是一個轉發,所以原諒我,但我有新的數據。
我正在運行一個名為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);
所以,現在我知道我的注銷功能正在被跳過,因為在我的數據庫中有以下數據:
替代文字http://img535.imageshack.us/img535/2025/screenshot20100519at125h.png
如果沒有被跳過,我的數據會顯示如下:
替代文字http://img25.imageshack.us/img25/8104/screenshot20100519at125.png
我知道它被跳過了兩個原因,一個是我的第一個函數結束時的die(),另外兩個,如果成功則會在表中注冊“logOutSuccess”。
有什么想法嗎? 一位朋友說這是一家虛張聲勢的托管公司(hostgator.com)。 我個人喜歡他們,因為他們便宜而且我是cpanel的粉絲。 但是,如果是這樣的話???
提前致謝。
-J
好的,對那些感興趣的人。
我刪除了完整的URL http://www.mydomain.com/functions.php並將其替換為本地路徑functions.php,這就是訣竅。
顯然AJAX存在跨域ajax調用的問題,而且我不在專用服務器上,所以我想發生的事情是每隔幾個小時(或幾分鍾)我從不同的位置點擊我的腳本導致AJAX解除POST數據。
-J
嘗試在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');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus+" - "+errorThrown);
}
});
}
看看是否能說明你的情況。
我有一種強烈的感覺,它更多的是服務器端問題,而不是客戶端問題。
奇怪的是你在一段時間內看到了這個問題。 如果客戶端工作,那么至少刷新頁面或重新啟動瀏覽器應該修復它。
函數末尾的die()是可疑的,但我不太確定它會如何影響它。
順便說一下,您可以在FireBug的Net選項卡中看到http標頭,以了解這些參數是否已正確發送。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.