如何使用php-crud-api获得ajax“成功”和“错误”响应

时间:2016-03-30 17:16:21

标签: php json ajax api

我在验证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;
    });
});

2 个答案:

答案 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;
    });
});