首页 > 开发 > HTML > 正文

请问这个ajax使用中,这里函数调用是什么意思?

2017-09-09 13:19:15  来源: 网友分享

HTML:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script src="new_ajax.js"></script></head><body>    <input id="btn" type="button" value="btn" />    <script>        var oBtn = document.getElementById('btn');        oBtn.onclick=function()        {            ajax("a.txt",function(str){                alert(str);            });        };    </script></body></html>

new_ajax.js 文件 :

function ajax(url,Succ,Fail){    if(window.XMLHttpRequest)    {        var oAjax = new XMLHttpRequest();    }    else    {        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");    }    oAjax.open("GET",url,true);    oAjax.send();    oAjax.onreadystatechange=function()    {        if(oAjax.readyState == 4)        {            if(oAjax.status == 200)            {                Succ(oAjax.responseText);            }            else            {                if(Fail)                {                    Fail(oAjax.status);                }            }        }    }};

第一 : 请问new_ajax.js文件最后,判断数据返回错误的情况下,succ()和Fail()是什么意思?为何不是写成 function succ()的和function Fail()的形式。

第二 : html文件中,调用ajax方法的时候

ajax("a.txt",function(str){                alert(str);            });  //  这里为何要写成function(str){}的形式?  那么之前封装的ajax函数中,里面不是oAjax.responseText么?到了html里面调用的时候,为何成了str。

小白不太懂,望各位大神详细指点。
乀(ˉεˉ乀)

解决方案

第一:这里的Succ和Fail只是形参,并不需要你去申明,它就是你传入ajax方法的第二个参数和第三个参数,实际上在ajax函数中这两个函数分别是请求成功和失败的回调函数
第二:同样str是形参,oAjax.responseText是实参,调用时oAjax.responseText的值会赋给str变量