为什么要有$.get $.post呢,这两种方法用在什么地方呢,和$.ajax有什么区别呢??

解决方案 »

  1.   

    post 和 get  方式 区别  大概有三点:1: 传递的参数 post  在url 栏显示  但有长度限制 
      

  2.   

    post和get其实区别还是比较大的:
    get是把参数数据队列加到提交表单的ACTION属性所指的URL中所以是信息不安全的;并且url的长度是有限制的。
    post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,是看不到相对安全一些;传递的参数无限制的。
    建议:
    1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
    2、在做数据查询时,可以用Get方式,因为它效率高;而在做数据添加、修改或删除时,建议用Post方式,因为它安全;
    至于ajax,那就更简单:ajax是异步,post是同步,至于很细的区分,你可以百度一下!
      

  3.   

    其实没什么区别, $.get, $,post都是基于$.ajax的只是简化了ajax调用而已, 前面二者都只能传入4个基本的参数, 如果需要在出错时执行函数,或者设置同步,或者其它的复杂业务就只能调用$.ajax.  建议在编写ajax调用时都尽量进行错误处理, 这样能在开发阶段避免很多不必要的问题
      

  4.   

    我一般用自己的一套ajax,也蛮好用的:
    /** 全局ajax对象 */
    var ajax = new Object();
    var ajaxCore = null;/**
     * @see 创建ajax核心对象,兼容浏览器有:IE6,7,8,9,谷歌,火狐,欧朋,360极速,360安全,苹果,搜狗,遨游,猎豹,腾讯
     * @return XMLHttpRequest
     */
    ajax.getCore = function() {
    var xmlHttp = null;
    if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
    if (xmlHttp.overrideMimeType) {
    xmlHttp.overrideMimeType("text/xml");
    }
    } else {
    if (window.ActiveXObject) {
    try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    }
    if (!xmlHttp) {
    window.alert("\u8bf7\u4f7f\u7528IE\u6d4f\u89c8\u5668!");
    }
    return xmlHttp;
    };/**
     * @see 处理ajax参数
     * @param param 参数
     * @return String
     */
    ajax.getParam = function(param) {
    var randomStr = "ajaxParamRandom=" + Math.random();
    if (param == null || param == "") {
    return randomStr;
    }
    var str = "";
    if (typeof(param) == "object") {
    for (var key in param) {
    str += key + "=" + param[key] + "&";
    }
    str = (str.length > 0 ? str.substring(0, str.length - 1) : str);
    } else {
    str = param;
    }
    return str + "&" + randomStr;
    };/**
     * @see ajax的回调函数
     * @param callback 用户自定义回调函数
     * @param url 请求的url
     */
    ajax.doCallback = function(callback, url) {
    if (ajaxCore.readyState == 4) {
    if (ajaxCore.status == 200) {
    if (callback == null) {
    return;
    }
    var result = new String(ajaxCore.responseText);
    if (null != result && result != "") {
    if (result == "null") {
    callback(null);
    } else {
    var backObject = null;
    if (result == "true" || result == "false") {
    backObject = eval(result);
    } else if (!isNaN(result)) {
    backObject = parseFloat(result);
    } else if ((result.substring(0, 1) == "[" && result.substring(result.length - 1, result.length) == "]") || 
    (result.substring(0, 1) == "{" && result.substring(result.length - 1, result.length) == "}")) {
    backObject = eval("(" + result + ")");
    } else {
    backObject = result;
    }
    callback(backObject);
    }
    } else {
    callback(result);
    }
    } else if (ajaxCore.status == 0 || ajaxCore.status == 12029) {
    showProgress("0", "1");
    alertWin("\u627e\u4e0d\u5230\u670d\u52a1\u5668\uff01", null, "");
    } else if (ajaxCore.status == 404) {
    showProgress("0", "1");
    alertWin("\u627e\u4e0d\u5230\u8d44\u6e90: " + url, null, "");
    }
    }
    };/**
     * @see ajax的post请求
     * @param url 请求的url
     * @param param 参数列表,可以是字符串或js对象或null
     * @param callback 用户自定义回调函数
     */
    ajax.post = function(url, param, callback) {
    ajaxCore = ajax.getCore();
    if (ajaxCore != null) {
    ajaxCore.onreadystatechange = function() {
    ajax.doCallback(callback, url);
    };
    ajaxCore.open("POST", url, true);
    ajaxCore.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    ajaxCore.send(ajax.getParam(param));
    }
    };/**
     * @see ajax的get请求
     * @param url 请求的url
     * @param callback 用户自定义回调函数
     */
    ajax.get = function(url, callback) {
    ajaxCore = ajax.getCore();
    if (ajaxCore != null) {
    if (url.indexOf("?") != -1) {
    url += "&ajaxParamRandom=" + Math.random();
    } else {
    url += "?ajaxParamRandom=" + Math.random();
    }alert(url);
    ajaxCore.onreadystatechange = function() {
    ajax.doCallback(callback, url);
    };
    ajaxCore.open("GET", url, true);
    ajaxCore.send(null);
    }
    };以上代码写在一个单独的js文件中,其它地方引入,调用方式如下:showProgress("1", "1");// ajax进度条: 正在提交,请稍候....
    ajax.post("/oc/iva.htm", {id:1, version:'1.2.6'}, function(json) {
    showProgress("0", "1");// 关闭进度条
    alert(json.success);
    });
    lz若能看懂以上代码,get和post就自然明白了
      

  5.   

    $ajax是jQuery中较底层的ajax的方法,
    $get也是实现异步请求的一种方式,是对$ajax的封装。类似于form表单中的get方式的求情,你懂的。
    $post和$get差不多类似于form表单中的post方式的请求,希望对你有所帮助。