2017-04-25 220 views
-2

我使用ajax向服務器發送數據,它在本地主機上正常工作,但我在聯機服務器上測試代碼時返回錯誤500.

如何解決這個問題?

$('#btn_publier').click(function (e) { 
    var formdata = new FormData(document.getElementById('post')); 
    var file_data = $('#IMG_CDV').prop('files')[0]; 

    formdata.append('file', file_data); 

    $.ajax({ 
    url: '../wp-content/plugins/Carnet_voyages/publier.php', 
    type: 'post', 
    data: formdata, 
    dataType: 'text', // what to expect back from the PHP script, if anything 
    cache: false, 
    contentType: false, 
    processData: false, 
    success: function (result, statut) { // success est toujours en place, bien sûr ! 
     if (result != "") { 
     alert(result); 
     location.reload(); 
     } 
    }, 
    error: function (resultat, statut, erreur) { 
     alert(erreur); 
    } 
    }); 

    e.preventDefault(); 
}); 
+1

500錯誤表示問題出在您的PHP代碼中。檢查響應文本或服務器日誌,希望會出現一個您可以診斷的錯誤。 –

+1

通過查看客戶端代碼無法診斷服務器錯誤 – charlietfl

+0

也應該使用適當的WordPress的ajax端點...不會進入'wp-content/plugins' – charlietfl

回答

0

錯誤500通常是從內部服務器錯誤發生

嘗試 1.重新加載頁面, 2.清除瀏覽器的緩存, 3.刪除瀏覽器的Cookie, 4.疑難解答爲504網關超時錯誤,而不是, 或直接考慮您的在線服務器或網站管理員的正確配置

瞭解其可能的原因也有利於:

1)權限錯誤。在大多數情況下,500內部服務器錯誤是由於一個或多個文件或文件夾的權限不正確造成的。在大多數情況下,PHP和CGI腳本的權限不正確是錯誤的。這些通常應該設置爲0775(-rwxr-xr-x)。

2) A PHP Timeout. If your script connects to external resources and those resources timeout, an HTTP 500 error can occur. Timeout rules, or better error handling in your script, should help if this is the cause of the 500 error. 

3) A Coding Error in .htaccess. While not as common, be sure to check that your site's .htaccess file is properly structured. 
+0

在我的情況下,我認爲我的問題是2),因爲我必須從本地資源上傳文件到服務器;在localhost上測試,但不在線時,這是完美的工作!現在,我沒有服務器配置權限,我會聯繫管理員,但是你有什麼想法在服務器上修改什麼? –

+0

我看到的代碼很好。在收到管理員的回覆之前,我現在不能說。可能它可能是他們經常遇到的錯誤。與此同時,問自己這些問題 1)你是否缺少任何javascript插件文件或插件文件路徑沒有定義你遇到的500內部服務器錯誤。 2)主機服務器區分大小寫檢查變量值。 3)如果您在提醒流程之前移動到ajax。 – 12345678

+0

以及我沒有很好的經驗與Ajax,但我不明白的是,如果腳本已在當地工作是什麼問題呢?本地和外部服務器架構不是相同的? –

相關問題