这是我的代码我通过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内部服务器错误我不知道为什么
答案 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();
如果是POST
或GET
请求,则无关紧要。