AJAX不向PHP文件发送任何内容
我正在序列化表单数据,将其记录下来,然后将其发送到PHP文件,其中返回null jQuery:AJAX不向PHP文件发送任何内容,php,jquery,ajax,Php,Jquery,Ajax,我正在序列化表单数据,将其记录下来,然后将其发送到PHP文件,其中返回null jQuery: $('#preregister').submit(function () { if(checkemail("prereg_email")) { var data; data = $(this).serialize(); console.log(data); $('#imageloader').fadeIn();
$('#preregister').submit(function () {
if(checkemail("prereg_email")) {
var data;
data = $(this).serialize();
console.log(data);
$('#imageloader').fadeIn();
$.ajax({
url: '/docs/adduser.php',
data: data,
processData: false,
contentType: false,
type: 'POST',
success: function ( data ) {
//console.log(data); //returns a string of the data.
var data = JSON.parse(data); //parses the string into an object.
console.log(data); //logs the object.
if (data.error) { alert(data.message); }
}
});
}
return false;
});
PHP:
当数据返回时,会显示:
对象{in:Array[0],错误:true,消息:“输入电子邮件”,在电子邮件中:}
这很奇怪,因为就在我发送数据之前,我记录了它,它显示:
prereg\u email=rbross3%40gmail.com
所以。。。我至少应该得到
$Return[“prereg\u email”]
对吧?我认为这是因为您使用的是processData:false,
请不要使用它。
.serialize()已返回一个字符串,因此您不需要processData:false,是否放置了
会话_start()代码>在你的adduser.php
文件的顶部?如果你这样做了,你的FILTER\u VALIDATE\u EMAIL
可能没有验证它,因为你有一个%40
来代替@
你能把你从这个控制台得到的信息发送给我们吗。log(数据)@DanielX2010,`$in_email=urldecode($_POST[“prereg_email”]);是的,session_start在包含的global.php中。@mbouzahir它已经在(对象)上面了
<?php
$Return = array();
$Return["in"] = $_POST;
$Return["error"] = false;
$Return["message"] = "Nothing has happened.";
/* EMAIL */
$in_email = urldecode($_POST["prereg_email"]);
$Return["in_email"] = $in_email;
if (!filter_var($in_email, FILTER_VALIDATE_EMAIL)) {
$Return["error"] = true;
$Return["message"] = "Enter a valid email.";
}
if (!$in_email) {
$Return["error"] = true;
$Return["message"] = "Enter an email.";
}
str_replace('\\/', '/', json_encode($Return));
echo json_encode($Return);
?>