我试图使用ajax调用一些php代码:
$(document).ready(function() {
$("#email_address").on("keypress", function() {
request = $.ajax({
url: '../verify_email.php',
data: {email: $("#email_address").val(),
submitted: true},
type: 'post'
});
request.done(function(response) {
//fooling around to see if this works
if(response) {
alert("valid email");
} else {
alert("invalid email");
}
});
request.error(function(response) {
alert("an error occurred");
});
});
});
但是,request.error函数会运行。我不太清楚为什么。这是php代码:
<?php
if(isset($_POST['submitted']) and isset($_POST['email'])) {
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
echo 'true';
} else {
echo 'false';
}
}
?>
提前致谢。
答案 0 :(得分:1)
request = $.ajax({
url: 'verify_email.php'
而不是
request = $.ajax({
url: '../verify_email.php',
我通过使用Chrome的网络检查员来解决这个问题。我今天学到了两件新东西:网址必须是什么,以及如何使用Chrome的网络检查器。谢谢大家的帮助
答案 1 :(得分:1)
如果你的网址工作正常,请在php中尝试返回json;)
<?php
$return = false;
if(isset($_POST['submitted']) and isset($_POST['email'])) {
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$return = true;
} else {
$return = false;
}
}
header('Content-Type: application/json');
echo json_encode(array('result' => $return));
die;
?>
在javascript中尝试:
request.done(function(response) {
//fooling around to see if this works
if(response.result) {
alert("valid email");
} else {
alert("invalid email");
}
});