服务器端:
....
$_SESSION['accountId'] = $accountId;
$_SESSION['type'] = $_POST['accountType'];
echo '1';
return;
客户方:
$.ajax(
{
type:'POST',
data: $("#flowFormSubmit").serialize(),
dataType:'text/plain',
timeout:1000,
success:function(response){
if(-1 == response)
alert('fail');
else
alert('succeed');
}
});
我已经测试过它在'返回'时就停止了 在什么条件下不会调用成功函数?
修改:
添加错误回调后,它被捕获,但尚未输出有用的信息:
error:function(response){ alert(response);alert(response.statusText); },
仅输出:
[object XMLHttpRequest]
OK
为什么会出现错误回调?
答案 0 :(得分:3)
指定URL option:
可能是个好主意$.ajax(
{
url:'foo.php',
type:'POST',
...
答案 1 :(得分:3)
错误回调还有更多有用的参数。尝试获取textStatus。
error: function(XHR, textStatus, errorThrown) { console.log(textStatus); }
检查那是什么。
快速猜测您打算使用dataType: 'text'
而不是'text/plain'
。 (Check documentation)
$.ajax({
type:'POST',
data: $("#flowFormSubmit").serialize(),
dataType:'text',
timeout:1000,
success:function(response){
if(-1 == response)
alert('fail');
else
alert('succeed');
}
});
答案 2 :(得分:1)
尝试从服务器端代码中省略return语句。就错误回调而言,使用以下通用ajax回调代码,让我们知道失败时状态,responseText和statusText属性是什么:
function callback(response)
{
if (response.readyState == 4)
{
if (response.status == 200)
{
alert("Response Success:\n" + response.responseText);
}
else
{
alert("Response Error:\n" + response.statusText);
}
}
}
答案 3 :(得分:0)
header('Content-Type:text/plain');
在服务器上?
答案 4 :(得分:0)
1)转到浏览器中的网址(使用ajax获取的网址)
2)为jquery ajax请求设置错误回调。
答案 5 :(得分:0)
在你的php代码中,使用json_encode返回响应
例如:
$response = array('success'=>1);
echo json_encode($response);
然后在你的ajax成功函数中它应该是
if (response.success == 1) { alert('success'); }