使用$ .ajax提交表单

时间:2014-05-21 20:11:17

标签: javascript php jquery ajax

当我在$().submit上准备好dom时,我正在调用此函数 但似乎无法正常工作,服务器没有响应

$(function(){
     $("#logingform").submit(function(){

            var values =$(this).serialize();

            call_server("../php/login.php",values);
     });
});

function call_server(URL,DATA) 
{
    $.ajax(
        {
            type:'POST',
            url : URL,
            data : DATA,
            dataType:'json',
            success:function(response){
                    $("#d1").append(response);
                }
        }
        );
}
似乎没有任何东西从服务器回来。

server code
<?php

$email = $_POST['loginemail'];
$password =$_POST['loginpassword'];


echo json_encode(array('returned_val' => 'yoho'));

2 个答案:

答案 0 :(得分:1)

你的ajax选项后面有一个额外的半冒号:

data : $(this).serialize();,

vs correct

data : $(this).serialize(),

答案 1 :(得分:1)

您不需要解析返回的json,因为您已经在ajax选项中定义了dataType:'json'

$("#d1").append($.parseJSON(response));

这不是必要的。

如果要将响应对象显示为字符串,则需要对其进行字符串化:

$("#d1").append(JSON.stringify(response));

此外,此行还有语法错误:

data : $(this).serialize();,

删除;


您的POST数据应采用json格式,而不是$(this).serialize(),请使用$(this).serializeArray()作为数据。这将传递POST主体的值而不是查询字符串。