2016-02-25 303 views
-1
文件

我已經試過這是我以前的問題的答案,但它不工作,它只是報告500內部服務器錯誤和螢火不會報告任何錯誤的詳細信息:請求通過Ajax

(function worker() { 
$.ajax({ 
    url: 'buildmarkers.inc.php', 
    type: 'POST', 
    success: function(data) { 
$('.result').html(data); 
}, 
complete: function() { 
    // Schedule the next request when the current one's complete 
setTimeout(worker, 30000); 
} 
}); 
})(); 

當我嘗試這樣它是工作:

<?php include('buildmarkers.inc.php')?> 
+0

錯誤日誌將提供一個巨大的線索。 –

+0

你可以添加你的php代碼嗎? – user3284463

回答

0

你真正的問題是,「爲什麼我得到500錯誤。」如果沒有buildmarkers.inc.php的代碼,就無法確定答案。你沒有看到任何螢火蟲,因爲它是一個服務器端錯誤。如果您修改了JavaScript並添加了錯誤功能,您會在客戶端看到它失敗。

(function worker() { 
$.ajax({ 
    url: 'buildmarkers.inc.php', 
    type: 'POST', 
    success: function(data) { 
    $('.result').html(data); 
    }, 
    error: function(data){ 
    console.log("Save me Tom Cruise! The server is on fire!"); 
    }, 
    complete: function() { 
    // Schedule the next request when the current one's complete 
    setTimeout(worker, 30000); 
    } 
    }); 
})(); 
+0

那麼我真正的問題是爲什麼它是一種方式,而不是其他方式,有什麼不同的Ajax請求相比,包括JavaScript? 而且我確實在ajax上嘗試了POST和GET方法。 – Dominik

+0

當您需要該文件時,PHP會在需要的腳本的上下文中處理它。也許你有意要對需要的腳本執行ajax調用,而不是buildmarkers.inc.php?如果您點擊的是http://example.com/buildmarkers.inc.php,這與使用ajax獲得的結果相同。你需要做的是看看PHP錯誤日誌,看看發生了什麼。 – mkaatman

0

Ajax調用將獲得與URI的相對路徑(基於DOCUMENT_ROOT或Web服務器)的文件,它可能是與不同​​的包括()在使用當前腳本文件的絕對路徑的PHP。您可能會:

  1. 檢查項目的文件夾結構,腳本路徑和「buildmarkers.inc.php」之間是否有區別?
  2. 它對你的web服務器有任何重寫規則嗎?
  3. 你應該檢查你的網絡服務器的錯誤日誌,它應該顯示有用的消息。
+0

我試圖查看PHP日誌,但找不到任何東西,根本找不到日誌。和php.ini,說[error_log = /var/log/php_errors.log],但沒有文件。 – Dominik

+0

它應該在webserver錯誤日誌文件中。您應該檢查localhost的VirtualHost配置,然後查看該文件中的錯誤日誌(Nginx:error_log,Apache:ErrorLog) –