我试图将jQuery的远程验证方法用于对某些服务器端逻辑的基本(好吧,应该)ajax调用。现在,我的情况变得特别的是我使用SlimFramework,所以我发布到路线,而不是直接的脚本页面。
这是JS:
rules: {
email: {
required: true,
email: true,
remote: {
url: 'http://localhost:3000/email/check',
async: false,
type: 'post',
dataType: 'json',
data: {
email: function() {
return $('#email').val();
}
}
}
}
}
messages: {
email: {
required: 'Please enter an email address.',
remote: 'This email is already taken.'
}
}
这是我的服务器端逻辑,我几乎可以肯定这是正确的:
$app->post('/email/check', function() use ($app) {
$request = $app->request;
$email = $request->post('email');
$response = '';
$user = $app->user
->where('email', $email)
->first();
if($user) {
$response = false;
} else {
$response = true;
}
header("HTTP/1.1 200 OK");
header('Content-Type: application/json');
echo json_encode($response);
});
更新
更具体地说,当我在检查器中检查网络响应时,似乎请求成功:
但是,我在验证对象的remote
属性中指定的messages
验证消息未被抛出...
有关为何无法正常运作的任何建议吗?