0

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

$("#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);
?>

主文件

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

然后它返回 500 internal server error 我不知道为什么

4

3 回答 3

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.  
  ?>
于 2013-07-12T07:52:42.023 回答
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();

不管是请求POST还是GET请求。

于 2013-07-12T08:02:55.923 回答
0

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

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

type:'POST'

type:'GET'
于 2013-07-12T06:56:57.913 回答