【问题标题】:Empty data JSON send API (AJAX - JQuery Post form) [duplicate]空数据 JSON 发送 API(AJAX - JQuery Post 表单)[重复]
【发布时间】:2018-05-04 04:45:56
【问题描述】:

我尝试使用 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","param2":"value2"}

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

邮递员回复:postman response

有什么办法吗?

谢谢!!!

【问题讨论】:

  • 能否提供submitLogin()的完整代码?
  • 它可能取决于反序列化,但我认为你应该省略“json”......东西。只是数据:JSON.stringify(...),
  • 完整代码 submitLogin(); pastebin.com/raw/eFcK458m
  • 服务器端代码是什么?
  • data: {json: JSON.stringify($('#formLogin').serializeJSON())}, 过于复杂。删除除 data: JSON.stringify(...) 之外的所有内容

标签: javascript jquery json ajax cordova


【解决方案1】:

尝试从帖子中删除 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”对象中,而不是仅将序列化表单作为数据传递,这就是为什么当您使用邮递员时它可能会起作用的原因。

【讨论】:

  • @KevinB 他在他的原始帖子中使用它,所以我只是假设它对他可用。
  • 哦...所以他是...一定是某种插件。
  • 谢谢,但没用。 API: "数据":[],"
  • @Ivan 你在 PostMan 中放了什么让它工作?
  • @AdamHarris 例如:{ "name": "John", "location": "Boston" }....API 响应:"data":{"name":"John" ,"位置":"波士顿"}
猜你喜欢
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多