AJAX的GET和POST方法的使用

首先说说什么时候该用GET,什么时候该用POSTGET方法是从服务器获取数据,对传送的数据是不加密的,安全性较低,能传送的数据量小,但效率高,当你需要从数据库读数据的时候,一般用GET方法。POST方法传送的数据量大,同时对发送的数据进行加密,安全性较高,所以,当你需要更新服务器端的数据的时候,用POST方式就比较合适了。

Ajax的GET的方法:

当进行用户注册或用户信息修改的时候,需要检查新的用户名是否已经被使用;

function GetAjax() {
            var Ajax;
            if (window.ActiveObject)
                Ajax = new ActiveXObject("Microsoft.XMLHTTP");
            else
                Ajax = new XMLHttpRequest();


            return Ajax;
        }
function checkUserName() {
            var userName = document.getElementById("name").value;
            if (userName != "") {
                var Ajax;
                Ajax = GetAjax();
                Ajax.onreadystatechange = function() {
                    if (Ajax.readyState == 4) {
                        //  alert(Ajax.responseText)
                        if (Ajax.responseText == "0") {
                            document.getElementById("ninfo").innerHTML = "用户名已经被使用!";
                            document.getElementById("name").value = "";
                            document.getElementById("name").focus();
                        }
                        else if(Ajax.responseText=="1")
                            document.getElementById("ninfo").innerHTML = "用户名可用!";


                    }
                }
                Ajax.open("GET", "Ashx/checkname.ashx?n=" + userName + "&type=1", true);
                Ajax.send();
            }
        }


AJAX 的POST方法:
当用户已经确定修改或注册的时候,需要把数据添加进数据库,这时候为安全性考虑,用GET方式就不合适了。


function AjaxPost(name, pwd, tel, right) {
            if (name != "" && pwd != "") {
                var Ajax = GetAjax();
                var params = "n=" + name + "&p=" + pwd + "&t=" + tel + "&r=" + right;
                Ajax.onreadystatechange = function (){
                    if (Ajax.readyState == 4) {
                        if (Ajax.status == 200)
                            if (Ajax.responseText == "1") {
                            ... code...
                        }
                        else
                            document.getElementById("sure").innerHTML = "添加用户失败!请稍后重试!";
                    }
                }
                Ajax.open("POST", "Ashx/addmanager.ashx", true);
                Ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                Ajax.setRequestHeader("Content-length", params.length);
                Ajax.setRequestHeader("Connection", "close");
                Ajax.send(params);
            }
        }

AJAX的POST方法的使用与GET方法有几点不同;
首先,需要设置必须的http请求头部,Ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
这条代码设置了http请求的Content-Type,当你将Content-Type设置application/x-www-form-urlencoded后,用网络抓包工具是不能直接获取传送的参数的;当你使用最原始的<form mothed=post></form>方式提交数据时,用网络抓包工具抓到的包中,http请求的Content-Type类型就是application/x-www-form-urlencoded。
其次,GET 的方式的Ajax.send()参数为空,需要发送的数据可以直接写在url后面,以url?param=...的方式发送,而POST的方式发送的数据必须作为send()方法的参数进行发送,比如:Ajax.send(params)。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值