我正在使用Jquery进行POST来验证我的页面。
$.post("api/authenticate", {"authkey": authkey}, function(data){
console.log(data);
if (data.success === "false") {
window.location="/Login.html";
}
});
EDIT !!
如果身份验证不成功,我的php函数将返回一个json对象
{"success":"false"}
但是,console.log(data)不会返回任何内容。即使我可以在资源中看到响应。
任何人都知道如何解决这个问题?
非常感谢任何帮助。
答案 0 :(得分:1)
如果您期望使用JSON,请使用$ .getJSON。它会将您的响应解析为JSON对象。
$.getJSON("api/authenticate", {"authkey": authkey}, function(jsonObj){
console.log(jsonObj);
if (jsonObj.success === "false") {
window.location="/Login.html";
}
});
答案 1 :(得分:1)
Freon的答案可能有效,这是另一种选择,尝试强制dataType
为JSON。
// This is the signature for $.post
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
$.post("api/authenticate", {"authkey": authkey}, function(data){
console.log(data);
if (data.success === "false") {
window.location="/Login.html";
}
}, "json");
另一个想法是确保您的服务器以2xx状态响应。如果您返回其他状态,jQuery
将不会尝试阅读回复。相反,它会查找传递给http://api.jquery.com/jQuery.ajax/的statusCode
选项中设置的状态代码处理程序
jQuery.ajax( "api/authenticate", {
data: {"authkey": authkey},
dataType: 'json',
statusCode: {
306: function(jqXhr, errorType) {
alert('Could not login')
// If you still want to access the response, it's accessible as raw text
// If it's JSON, you have to parse it.
alert (jqXhr.responseText);
}
}
});
答案 2 :(得分:-2)
您需要将数据作为数组进行迭代,例如data[0]
通过for循环或while循环