使用Ajax调用php脚本导致内部服务器错误,刷新工作?

时间:2013-09-10 21:18:41

标签: php ajax session internal-server-error

我正在制作一个显示有关远程服务器的各种数据的仪表板。它通过侧栏上的按钮在服务器之间切换。例如,这是调用脚本的html:

onclick="tab('localhost')"

这是Ajax位:

function tab(host){
        $.ajax({
                url: 'remote.php',
                data: { tab: host },
                success: function(result){
                        $('.container-body').html(result);
                },
                error: function(xhr, status, error) {
                    $('.container-body').html("<h1>" + error + "</h1>when opening " + host);
                },
                complete: function(){
                        $(init_ui);
                        $(update);
                        $('.tab').removeClass('active');
                        $('#dash').removeClass('active');
                        $('#'+host).addClass('active');
                }
        });
}

这应该将$ _SESSION [“tab”]设置为“localhost”,然后显示该服务器的数据。但是,它会返回“内部服务器错误”。但是,如果我刷新页面,它会正常加载会话设置为“localhost”。

如果我从Ajax调用中删除了GET参数,并从remote.php中删除了isset()函数,那么Ajax函数会在没有会话的情况下返回成功,并暗示这是问题所在的位置。

这是remote.php的php配置

<?php 
error_reporting(E_ALL ^ E_NOTICE);
session_start(); 
require_once 'config.php';
if(isset($_GET["tab"])) $_SESSION["tab"] = $_GET["tab"]; 
?>

没什么特别的,对吗?那到底是怎么回事?!

编辑:

由于某些原因,Ajax正在错误地处理会话,并且错误的会话导致无效的PHP代码。

新问题:

Ajax中的会话有什么特别之处?

1 个答案:

答案 0 :(得分:0)

您忘记了要求中的括号:

require_once 'config.php';

应该是:

require_once('config.php');