html函数总是从另一个js文件返回undefined

时间:2017-09-09 09:33:54

标签: javascript html

首先,我没有使用node.js.
我的网站环境纯粹是Tomcat + SQL Server + HTML / JSP页面。 其次,我检查了类似的帖子,发现没有一个回答我的问题。

以下是我想要做的事情:

  1. 编写一个js文件来模块化特定用户的授权检查 有权查看某个网页。
  2. 有两个参数可以传递到函数中:username&网页名称。
  3. 因此,在每个网页中,我都可以在需要时进行授权检查。
  4. P.S。在构建js函数时,我尝试了几种方法。工厂/原型/动态/寄生。我相信这是由于我有限的编程知识,我无法从服务器获得所需的返回值。

    以下是我的情况:
    在我的js文件(sisAuthorization.js)中,它看起来像如下:

    //-------------------my sisAuthorization.js file Starts here---------------------
    // callback example
    var clientData = {
        myResult: "not set",
        serverAuthCheck: function(username, webpage){
            $.ajax({
                method: "POST",
                async: false,
                url: "/psd/webpageAuthorization.ajlog",
                dataType: 'json',
                data: {
                    "username": username,
                    "webpage": webpage
                }, success: function (data) {
                    console.log("server answer is " + data.isauthorized);
                    if(data.isauthorized == "yes"){
                        this.myResult = "yes";
                        console.log("client answer is " + this.myResult);
                    }else{
                        this.myResult = "no";
                    }
                }
            });     
        }
    }
    
    function getLocalInput(username, webpage, callback, callbackObj){
        callback.apply(callbackObj,[username, webpage]);
    }
    //-------------------my sisAuthorization.js file Ends here---------------------
    

    在我的html / jsp网页中,在脚本块中,我写了以下内容:

    <!-------------------my Webpage Starts here--------------------->
    <script type="text/javascript">
    
        $(document).ready(function(){
            if(!isUndefined(getCookie("kgusername"))){
                $("#myUsername").html(getCookie("kgusername"));
            }
    
            //**getCookie("kgusername") returns username**
            //**"updatewbs.jsp" is webpage name**
            getLocalInput (getCookie("kgusername"),"updatewbs.jsp", clientData.serverAuthCheck, clientData);
            console.log (clientData.myResult); // **not set**(I'm expecting "yes" here)
    
        });
    
    </script>   
    <!-------------------my Webpage Ends here--------------------->
    

    最后在Chrome控制台中,我有以下内容:

    • sisAuthorization.js:23 服务器答案是肯定的
    • sisAuthorization.js:26 客户回答是肯定的
    • updatewbs.jsp: 未设置 (我是 在这里期待“是”)

    任何人都可以帮忙???

0 个答案:

没有答案