在SAPUI5应用程序中获取最大调用堆栈大小错误

时间:2017-05-04 13:50:01

标签: ajax sapui5

在登录时调用ajax帖子时获取最大调用堆栈大小错误。无法弄清楚究竟是什么导致了这个问题。我似乎无法找到任何递归函数。

  

这是我的xmlview文件

<mvc:View
    controllerName="abc.controller.LoginController"
    xmlns:mvc="sap.ui.core.mvc"
    xmlns:u="sap.ui.unified"
    xmlns:c="sap.ui.core"
    xmlns:m="sap.m"
    xmlns:l="sap.ui.layout"
    xmlns:tnt="sap.tnt">
    <m:Page
        id="loginPage"
        showHeader="false"
        enableScrolling="false"
        class="sapUiContentPadding">
        <m:Panel width="30%">
            <l:Grid>
                <l:content>
                    <l:VerticalLayout>
                        <m:Label text="User Name" design="Bold"/>
                        <m:Input id="username"/>
                    </l:VerticalLayout>
                    <l:VerticalLayout>
                        <m:Label text="Password" design="Bold"/>
                        <m:Input id="password" type="Password" />
                    </l:VerticalLayout>
                    <l:VerticalLayout>
                        <m:Button id="loginBtn" text="Login" press="toTablePage" />
                    </l:VerticalLayout>
            </l:content>
            </l:Grid>
        </m:Panel>
        </m:Page>
</mvc:View>
  

我的登录控制器js文件是

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel",
    "sap/m/MessageToast"
], function(Controller, JSONModel, MessageToast) {
    "use strict";

    return Controller.extend("abc.controller.LoginController", {

        onInit: function(){

        },

        toTablePage: function(){

            var userName = this.byId("username");
            var password = this.byId("password");

            if(userName.getValue()!== "" && password.getValue()!== ""){



                    var aData = jQuery.ajax({
                        type: "POST",
                        contentType: "application/json",
                        url: "http://localhost:3000/api/logins",
                        dataType: "json",
                        data: jQuery.param({ email: userName, password : password}) ,
                        success: function (data, textStatus, jqXHR) {
                            alert(textStatus);
                        }

                    });
            }
            else
                MessageToast.show("the username or password is wrong");
        }
    });
});

1 个答案:

答案 0 :(得分:0)

您将userNamepassword(具有圆形结构的对象)传递给jQuery.param。您需要传递实际的userName.getValue()password.getValue()

jQuery.param正在尝试序列化递归对象。这是一个永不结束的过程。