我的代码不能在线工作

时间:2014-07-22 08:12:46

标签: php ajax

<?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 curosr:div指针#标志....

1 个答案:

答案 0 :(得分:1)

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

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

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

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

在本地,几乎总是只有一台服务器,而且往往是一个更简单的目录结构,减少了这些错误。一旦你把它上线,错误就会显示为错误。还要记住,实时站点的错误报告设置通常比开发环境中的错误报告设置更严厉。您可能想要在本地和在线查看您的php.ini文件。您可以tune it暂时向您显示所有详细信息。它可能会帮助你找出问题所在。