繁体   English   中英

自动将检索到的值从javascript函数传递给另一个javascript函数?

[英]Automatically pass the retrieved value from a javascript function to another javascript function?

我有两个内联Java脚本函数,一个打算使用xhr获取令牌值,第二个打算使用该值从服务器获取完整响应。 但是,当我在服务器上上传相同内容时,没有任何反应。

下面是示例代码:

function getUser(user)
      {


   var xmlhttp;
   var result,x,i;
   var uservalue=user;
   var url="http://abc.xyz.com:8090/uauth/" +uservalue;
   ///here starts the getToken method..
   var tokensave=function getToken(uservalue)
                    {
                     var xmlhttp;
                     var token,a,b;
                     var url="http://abc.xyz.com:8090/uauth/" +uservalue;
                     var data="op=login&pass=" +uservalue;   


                     if (window.XMLHttpRequest)
                        {// code for IE7+, Firefox, Chrome, Opera, Safari
                         xmlhttp=new XMLHttpRequest();

                                 if (xmlhttp==null)
                                    {
                                     alert ("Browser does not support HTTP Request");
                                     return;
                                     }

                         }
                    else
                         {// code for IE6, IE5

                          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                         }

                    xmlhttp.open("POST",url, true);

                    xmlhttp.onreadystatechange=function()
                         {

                                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                                   {

                                    xmlDoc=xmlhttp.responseXML;
                                    token="";
                                    a=xmlDoc.getElementsByTagName("token");

                                    token=token + a.childNodes.nodeValue;

                                        document.getElementById("myDiv").innerHTML=token;
                                    }
                          };

                     xmlhttp.setRequestHeader("Content-Type", "text/xml");   
                     xmlhttp.send(data);
                     return token;

                 }


   var header="Xyz-Authorization: "+tokensave;


                     if (window.XMLHttpRequest)
                        {// code for IE7+, Firefox, Chrome, Opera, Safari
                         xmlhttp=new XMLHttpRequest();

                     if (xmlhttp==null)
                        {
                        alert ("Browser does not support HTTP Request");
                        return;
                        }

                        }
                     else
                        {// code for IE6, IE5
                         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                        }

                         xmlhttp.open("GET",url, true);

   xmlhttp.onreadystatechange=function()
                        {
                            if (xmlhttp.readyState==4 && xmlhttp.status==200)
                               {

                               xmlDoc=xmlhttp.responseXML;
                               result="";
                               x=xmlDoc.getElementsByTagName("response");
                               for (i=0;i<x.length;i++)
                                    {
                                     result=result + x[i].childNodes[0].nodeValue + "<br />";
                                    }
                               document.getElementById("myNewDiv").innerHTML=result;
                               }
                         };

   xmlhttp.setRequestHeader("Xyz-Authorization: ", +tokensave);
   xmlhttp.send();


 }
   HTML CODE:
     <div id="myDiv"></div>
    <br />
    <br />
     <div id="myNewDiv"></div > 
     <br />
     <form>
     <input name="textbox" id="textbox" type="text" />
     <input name="buttonExecute" onclick="getUser(document.getElementById('textbox').value)" type="button" value="Get User"    />
     </form>

这种方法有什么问题?

预先感谢您的宝贵帮助...
玛拉娜

您需要在第一个函数中使用return token ,并像这样使用它getUser(getToken(user))

只需创建一个全局变量,然后设置de function内的值即可更改,但仍可以从全局范围中访问所需的所有函数。

var data = false;

function getData() {
    // some ajax...
    data = {cool:true};
}

function foo () {
    if(data.cool) {
        alert (data.cool)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM