使用GET方法的AJAX代码混淆

时间:2012-07-11 23:43:58

标签: javascript html ajax windows web

我买了一本书,开始学习如何使用AJAX,有人给了我一个练习作业,我必须在一个div中输入值,然后对她给我的网站执行AJAX get请求,以便在右边的div中接收信息。也许我正在按照本书的说法错误地执行AJAX get请求。如果有人能指出我正确的方向,我会很感激。这不适合学校,我没有网络脚本语言的经验,但愿意学习。只需给我的javascript看看,也许你可以帮助我。我不确定如何在收到信息后显示信息,但我知道在点击提交按钮时我不想加载另一个页面!

此外,我有一种奇怪的方法可以将我的代码排列在C ++编程中大约4年。我已经开发了它,如果很难理解,那就很抱歉。如果是这样,那么我可以格式化它并重新发布。另外,我试图学习如何使用AJAX GET方法,而不是POST方法。我想以JSON格式返回信息。

<html>

    <head>

            <style type="text/css">
                    #header {
                            text-align: left;
                    }
                    #wrapper {

                            margin:bottom;
                            width:100%;

                    }

                    #sub-left {
                            float:left;
                width:225px;
            height:215px;
            border:1px solid black; 
            position: relative;
            text-align: left;
                    }
                    #sub-right {
            padding-left: 52px;
                            float:left;
            width:60%;
            height:45%;
            border:1px solid black; 
            position: relative;
            text-align: left;

                    }
        #sub-leftmost {

                            float:left;
            width:10%;
            height:100%;
            position: relative;
            text-align: left;
                    }

            </style>


    <script type=”text/javascript”>
    // function create GetXmlHttpObject
    function GetXmlHttpObject(){
    if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject){
    // code for IE6, IE5
    return new ActiveXObject(“Microsoft.XMLHTTP”);
    }
    return null;
    }

    function submitFormWithAjax(){
    var myAjaxGetrequest = new GetXmlHttpObject();

    var t2lName=document.testForm.namebox.value;
    var t2lEmail=document.testForm.ebox.value;
    var t2lAddress=document.testForm.addbox.value;
    var t2lPhone=document.testForm.phnbox.value;

    var parameters = "name=" + encodeURIComponent(t2lName) 
           + "&email=" +encodeURIComponent(t2lEmail)
           + "&address=" + encodeURIComponent(t2lAddress)
           + "&phone=" +encodeURIComponent(t2lPhone);

    myAjaxGetrequest.open("GET", "websitetosendandgetfrom.com" + parameters, true);
    myAjaxGetrequest.send( );

    if (myAjaxGetrequest.readyState==4){
    if(myAjaxGetrequest.status==200 || window.location.href.indexOf("http")==-1){
    document.getElementById("result").innerHTML=myAjaxGetrequest.responseText
    document.getElementById(“testForm”).style.display = “none”;
    }
    else    {
    document.getElementById(“testForm”).innerHTML=”An error has occured making the request”;
    }
    }
    }
    }   



</script>
    </head>

    <body>

<div id="wrapper">

    <div id="sub-leftmost">


    </div>
</div>


    <div id="wrapper">
    <div id="header"><h1>Quiz</h1></div>
    <div id="sub-left">
<form name = 'testForm'>
<FONT COLOR="CC3300",font size="5">&nbsp;&nbsp;&nbsp;<b>User Info</b></FONT>
<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Full Name: <br /><center><input type="text"  size="25" id =         "namebox" /></center>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Email Address: <br /><center><input type="text"  size="25" id = "ebox" /></center>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address: <br /><center><input type="text"  size="25" id = "addbox" /></center>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phone Number: <br /><center><input type="text"  size="25" id = "phnbox" />
<a href=”#” onclick=”submitFormWithAjax();”>Finished!</a>
</form>

    </div>
    </div>
<div id="wrapper">
    <div id="sub-right">

    </div>
</div>


    </body>

    </html>

1 个答案:

答案 0 :(得分:1)

请求是异步的,只会在状态发生变化时调用回调函数。

基本上,依赖于请求状态更改的所有代码都需要包含在AJAX请求的回调中:

myAjaxGetrequest.send();

myAjaxGetrequest.onreadystatechange = function() {
  if (myAjaxGetrequest.readyState==4){
    ...