空数据JSON发送API(AJAX - JQuery Post表单)

时间:2017-11-20 20:57:37

标签: javascript jquery json ajax cordova

我尝试使用AJAX和JQuery以表格形式发送带有POST的JSON数据。我使用Chrome模拟Phonegap App。

我的代码JS是:

$.ajax({
            type: "POST",
            url: "http://url API",
            data: {json: JSON.stringify($('#formLogin').serializeJSON())},
            timeout: 600000,
            contentType: "application/json",
            success: function(msg) {
                alert("correcto");
            },
            error: function(error) {             
                alert("error");
            }
        });

表格是:

<form id="formLogin">
        <div class="form-group">
            <input type="text" name="login" id="login" value="" placeholder="Usuario" class="form-control elemento_centrado">
        </div>
        <div class="form-group">
            <input type="password" name="password" id="password" value="" placeholder="Contraseña" class="form-control elemento_centrado">
        </div>
        <div class="text-center">
            <button id="btnLogin" class="btn btn-primary" onclick="return submitLogin()">LOGIN</button>
        </div>
        <!-- /formulario de login -->
    </form>

问题是始终发送的数据为空白或无效....

API响应始终:“data”:[],“。但是,如果我使用POSTMAN,我会为数据值写入,API响应:”data“:{”param1 “:” VALUE1" , “参数2”: “VALUE2”}

完整代码“submitLogin()”:https://pastebin.com/raw/eFcK458m

POSTMAN回复:postman response

任何解决方案?

感谢!!!

1 个答案:

答案 0 :(得分:0)

尝试从帖子中删除json属性,这样你的ajax调用应如下所示:

$.ajax({
            type: "POST",
            url: "http://url API",
            data: $('#formLogin').serializeJSON(),
            timeout: 600000,
            contentType: "application/json",
            success: function(msg) {
                alert("correcto");
            },
            error: function(error) {             
                alert("error");
            }
        });

我相信问题是你正在传递“json&#39;对象而不是仅仅传递序列化的表单作为数据,这就是为什么它在你使用邮递员时可能正常工作的原因。