我在验证API响应时遇到问题。 我正在使用php-crud-api,我将值从我的登录表单传递到网址过滤器[] ,服务器以 200 OK 响应并返回json表中的数据。但是,我不需要json数据只是“成功”或“错误”响应。任何帮助都会很棒。提前感谢您的任何反馈。
$(document).ready(function() {
$("#login-button").click(function() {
log_email = $("#login_email").val();
log_password = $("#login_password").val();
$.ajax({
type: "GET",
url: "http://www.website.com/api.php/users?",
crossDomain: true,
data: "filter[]=email,eq,email=" + log_email + "&filter[]=password,eq,password=" + log_password,
dataType: 'json',
success: function(data) {
if (data == "null") {
console.log("Email and Password DIDN'T match");
$( "#invalid-login" ).popup( "open" );
}
else if (data == "true") {
console.log("it's a !!MATCH!!");
window.location = "content.html";
}
}
});
return false;
});
});
答案 0 :(得分:0)
我已经阅读了https://github.com/mevdschee/php-crud-api的文档,并且写了它将仅以json格式返回输出" Condensed JSON输出:第一行包含字段名称",所以你需要相应地更改您的代码,或者您可以使用其他选项。
答案 1 :(得分:0)
幸运的是,API开发人员回复了我,他提供了以下解决方案:
在ajax调用中添加以下行来限制输出:
+"&columns=email"
Replase:
if (data == "null") {
使用:
if (data.users.records.length==0) {
在else子句中,只需替换:
else if (data == "true") {
使用:
else {
结果:
$(document).ready(function() {
$("#login-button").click(function() {
log_email = $("#login_email").val();
log_password = $("#login_password").val();
$.ajax({
type: "GET",
url: "http://www.website.com/api.php/users?",
data: "filter[]=email,eq,"+log_email+"&filter[]=password,eq,"+log_password+"&columns=email",
crossDomain: true,
dataType: 'json',
cache: false,
success: function(data) {
if (data.itouchyou.records.length == 0) {
//FAIL
$( "#invalid-login" ).popup( "open" );
console.log("Email and Password DIDN'T match");
}
else {
// SUCCESS
window.location = "content.html";
console.log("it's a !!MATCH!!");
}
}
});
return false;
});
});