当我在$().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'));
答案 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主体的值而不是查询字符串。