JQuery:Ajax POST调用不发送数据

时间:2013-07-02 15:43:04

标签: php jquery

Firebug说请求已经发送到服务器200OK,但PHP数组$ _POST是空的。

var pass_data = {
    'email':$("#email").val(),
    'verifyemail':$("#verifyemail").val(),
    'password':$("#password").val(),
    'confirm_password':$("#vPassword").val(),
}

$.ajax({
    type: "POST",
    url: 'localhost/pages/register',
    dataType: 'json',
    data: pass_data,

});

请求标题:

Accept  application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Content-Length  86
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
Host    localhost
Referer http://localhost/
User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
X-Requested-With    XMLHttpRequest

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

我通常避免在变量声明中直接使用jQuery返回值。引用可能使解析不一致。建议:

var pass_data = $('form').serialize();

让jQuery做繁重的工作。

P.S。刚注意到你的pass_data的变量声明在最后一个元素之后有一个尾随逗号。那是不正确的。与传递给$ .ajax的对象相同的问题。摆脱最后一对的尾随逗号。

答案 1 :(得分:1)

var pass_data = {
    'email':$("#email").val(),
    'verifyemail':$("#verifyemail").val(),
    'password':$("#password").val(),
    'confirm_password':$("#vPassword").val()
};

$.ajax({
    type: "POST",
    url: 'localhost/pages/register.php',
    dataType: 'json',
    data: {posted_data: pass_data}
});

您应该在register.php上查看 $ _ POST ['posted_data']

答案 2 :(得分:0)

对不起,我不会说英语。

但是请尝试写console.log(pass_data)以确保获得val。

答案 3 :(得分:-1)

Jquery可以显示发送的实际数据,以便您确认数据实际存在。