![](/img/trans.png)
[英]Ajax request returns 200 OK, but an error event is fired instead of success
[英]AJAX return code 200 but fired error
HTML部分:
<a href="javascript:void(0)" onclick="$.join_group(<?=$USER_ID?>, <?=$groups[$i]["id"]?>)"><?=$language["join"]?></a>
js部分:
$.join_group = function(user_id, group_id) {
var input = "user_id=" + user_id + "&group_id=" + group_id + "&mode=join_group";
alert(input);
$.ajax({
url : "handlers/H_GroupHandler.php",
data : input,
type : "post",
dataType : "json",
success : function (response) {
if (!response.error) {
alert("asds");
} else {
alert("asds");
}
},
error: function(jqXHR,error, errorThrown) {
if(jqXHR.status&&jqXHR.status==400){
alert(jqXHR.responseText);
}else{
alert(jqXHR.status);
alert("Something went wrong");
}
}
});
return false;
}
H_GroupHandler:
$mode = $_POST["mode"];
if ($mode == "join_group") {
$user_id = $_POST["user_id"];
$group_id = $_POST["group_id"];
$response["error"] = true;
$response["error_text"] = "Error !";
echo json_encode($response);
}
远程地址:[:: 1]:80请求URL: http://localhost/xxx/handlers/H_GroupHandler.php请求方法:POST状态码:200 OK
它返回200,但是ajax触发了错误函数,并发生了问题。
浏览器中的表单数据:
user_id:1
group_id:6
模式:join_group
您的Ajax工作正常,但是看到您使用dataType:“ json”,并且您的php文件返回字符串,这就是执行错误块的原因
在echo
您的json
之前添加标题将解决您的问题
`header('Content-Type: application/json');`
echo json_encode($response);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.