$ .ajax调用PHP包含文件返回500错误内部

时间:2013-07-12 05:21:37

标签: php jquery

这是我的代码我通过jquery $ .ajax调用ajax JS

$("#form-login").submit(function(){
    var email = $("#menu_username");
    $.ajax({
        type: "post",
        url: "register_cmd.php",
        data: {email:email},
        dataType: "json",
        cache:false,
        success:function(data){
            if(data.c == "ok"){
                window.location.reload();
            } else {
                alert(data);
            }
            return false;
        }
    })
});

register_cmd.php

<?PHP
include 'system/library/main.php';

$main = new mainQuery();

$chk_email = $main->checkEmail($email);
?>

main.php

function checkEmail($email){
    $result = "function here";
    return $result;
}

然后它返回500内部服务器错误我不知道为什么

3 个答案:

答案 0 :(得分:0)

我自己也遇到过这个问题,即使我在我的情况下找不到它的原因,当从POST更改为GET时,问题500错误消失了!

因为GET方法发送附加到页面请求的编码用户信息。

type:'POST'

type:'GET'

答案 1 :(得分:0)

我对您的代码进行了少量更改。试试这个

 var email = $("#menu_username").val(); // if you want to take the value from email field
$.ajax({
    type: "POST",
    url: "register_cmd.php",
    data: {email:email},
    dataType: "json",
    cache:false,
    success:function(data){
        if(data.result == "ok"){
            window.location.reload();
        } else {
            alert(data.result);
        }
        return false;
    }
});

并更改register_cmd.php中的代码,如下所示

 <?PHP
  include 'system/library/main.php';
  $main = new mainQuery();
  $chk_email['result'] = $main->checkEmail($email);
  print_r(json_encode($chk_email)); // if you are using json, you should use json_encode before it returns.  
  ?>

答案 2 :(得分:0)

main.php中的函数需要一个类围绕它

class mainQuery {
    public function checkEmail($email){
        $result = "function here";
        return $result; 
    }
}

否则你不能实例new mainQUery;

也是调试集的所有内容

error_reporting(E_ALL);
ini_set('display_errors', true);

500是服务器端错误,与ajax无关。

可能是这一行:

var email = $("#menu_username");

可能必须是

var email = $("#menu_username").text();
//or
var email = $("#menu_username").val();

如果是POSTGET请求,则无关紧要。