【发布时间】:2017-12-20 06:35:49
【问题描述】:
我创建了一个简单的代码 ajax 请求,用于检查 codeigniter 框架中的电子邮件可用性。但是,我每次都会出错。并且不知道如何解决它。 下面是我的页脚 js 脚本(在 jquery 和其他外部脚本之后)。
<script>
$(document).ready(function() {
$("#loading").hide();
$("#email").blur(function() {
var email_val = $("#email").val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
if (filter.test(email_val)) {
// show loader
$('#loading').show();
jQuery.ajax({
type: "POST",
url: "<?php echo site_url()?>users/check_email_ajax",
dataType: 'json',
data: {
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>',
'email': 'email_val'
},
success: function (response) {
if(response){
$('#loading').hide();
console.log(response.message);
$('#msg').html(response.message)
$('#msg').show().delay(10000).fadeOut();
}
},
error: function(error){
$('#loading').hide();
console.log("There is some errors on server : " + error.error);
}
})
}
});
});
这是我在数据库中检查电子邮件的用户控制器功能
public function check_email_ajax(){
// allow only Ajax request
if($this->input->is_ajax_request()) {
// grab the email value from the post variable.
$email = $this->input->post('email');
// check in database - table name : users , Field name in the table : email
if(!$this->form_validation->is_unique($email, 'users.email')) {
// set the json object as output
$this->output->set_content_type('application/json')->set_output(json_encode(array('message' => 'The email is already taken, choose another one')));
}else{
$this->output->set_content_type('application/json')->set_output(json_encode(array('message' => 'you can use this email')));
}
}
}
在注册表中我有这个字段用于电子邮件输入:
<div class="col-sm-5">
<input type="email" id="email" name="email" class="form-control">
<span id="loading"><img src="<?php echo base_url(); ?>ajax-loader.gif" alt="Ajax Indicator" /></span>
<div id="msg"></div>
</div>
但现在每次我更改输入的值。我在 console.log 上收到错误
There is some errors on server : function (){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this}
有人知道怎么解决吗?
【问题讨论】:
-
请打开您的 Web 控制台并添加由您的 ajax 函数发布的请求标头/响应和 JSON 获取的屏幕截图
-
另外,你能不能只添加console.log(error)的输出;
标签: javascript php jquery ajax codeigniter