零基础学习AJAX之AJAX的简介和基础

2019-09-14 07:07:25王冬梅

                    var responseDiv = document.getElementById("serverResponse");
                    responseDiv.innerHTML = decodeURI(xmlHttp.responseText); //解码
                }
            }
        </script>
        <form>
            <input type="text" id="firstName" />
            <br>
            <input type="text" id="birthday" />
        </form>
        <form>
            <input type="button" value="GET" onclick="doRequestUsingGET();" />
            <br>
            <input type="button" value="POST" onclick="doRequestUsingPOST();" />
        </form>
        <div id="serverResponse"></div>

服务器端主要是根据用户输入以及请求的类型返回不同的字符串


<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
    if(Request.HttpMethod == "POST")
        Response.Write("POST: " + Request["firstName"] + ", your birthday is " + Request["birthday"]);
    else if(Request.HttpMethod == "GET")
        Response.Write("GET: " + Request["firstName"] + ", your birthday is " + Request["birthday"]);
%>

从以上代码看出POST和GET都发送了数据异步请求,通常在数据不多的时候使用GET,在数据较多的时候使用POST。

在使用PSOT发送中文字符时,post接收会乱码,使用GET发送中文字符正常。这是因为异步对象xmlHttp在处理返回的responseText的时候,是按照UTF-8编码的。
通常的解决办法是escape()对发送的数据进行编码,然后在返回的responseText再使用unescape()进行解码。然而在javascript编程中通常不推荐escape()和unescape()。而推荐使用encodeURI()和decodeURI()。这里要正常运行,必须对发送的数据进行两次encodeURI()编码。
代码如下


    function createQueryString(){