我的代码不能在线工作


My code doesn't work online

<?php
include('changeLang.php'); 
$default_language = 'sr';
if(isset($_COOKIE['lang'])) {
    $lang = $_COOKIE['lang'];
} 
else {
    $lang = $default_language;
} 
if($lang == 'en') { 
    include('language_en.php');
} 
else {
    include('language_sr.php');
}
?>

我添加了一个新的URL路径,我没有弹出任何错误,当然它都在同一个文件夹中,没有子文件夹可以立即排除这种可能性。我想错了

<script  type="text/javascript">
function changeLanguage (lang) {
    $.ajax({
        url: 'http://www.example.com/changeLang.php',
        type: 'POST',
        data:{ lang:lang },
        beforeSend: function(){
        },
        complete: function(){
        },
        success: function(data) {             
            console.log(data);
            if(data == 'ok'){
                location.reload();
            }
            //var response = JSON.parse(data);
        },
        error: function(data, textStatus, errorThrown){
            console.log("error"+' '+JSON.stringify(data) + textStatus  + errorThrown);
        }
    });
}
</script>

//代码

我的错误是在href,因为我把href=",页面首先重新加载和onclick函数从未被使用过,所以我必须把javascript:void(0)和css光标:指针为div #标志....

您正在请求changeLang.php,这将不是在线文件的名称。您需要完整的URL。这同样适用于图像文件。

例如,在脚本的ajax部分,有

$.ajax({
    url: 'changeLang.php',

不请求changeLang.php,而是添加完整的文件名,如http://www.example.com/site/changeLang.php。这指定了您希望为文件提供服务的服务器,以及您知道它在哪里。

在本地,几乎总是只有一个服务器,而且目录结构通常要简单得多,从而减少了这些错误。只要你把它放到网上,错误就会显示为错误。还请记住,活动站点的错误报告设置通常比开发环境中的错误报告设置要严格得多。您可能希望在本地和在线查看php.ini文件。您可以临时调整它以显示所有的细节。