jquery $.ajax $.get $.post的区别是什么噢? 为什么要有$.get $.post呢,这两种方法用在什么地方呢,和$.ajax有什么区别呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 post 和 get 方式 区别 大概有三点:1: 传递的参数 post 在url 栏显示 但有长度限制 post和get其实区别还是比较大的:get是把参数数据队列加到提交表单的ACTION属性所指的URL中所以是信息不安全的;并且url的长度是有限制的。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,是看不到相对安全一些;传递的参数无限制的。建议:1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;2、在做数据查询时,可以用Get方式,因为它效率高;而在做数据添加、修改或删除时,建议用Post方式,因为它安全;至于ajax,那就更简单:ajax是异步,post是同步,至于很细的区分,你可以百度一下! 其实没什么区别, $.get, $,post都是基于$.ajax的只是简化了ajax调用而已, 前面二者都只能传入4个基本的参数, 如果需要在出错时执行函数,或者设置同步,或者其它的复杂业务就只能调用$.ajax. 建议在编写ajax调用时都尽量进行错误处理, 这样能在开发阶段避免很多不必要的问题 我一般用自己的一套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就自然明白了 $ajax是jQuery中较底层的ajax的方法,$get也是实现异步请求的一种方式,是对$ajax的封装。类似于form表单中的get方式的求情,你懂的。$post和$get差不多类似于form表单中的post方式的请求,希望对你有所帮助。 dwr在使用map 里的值如何排序 登录自动返回上一个页面 如何把HTML 转化为一个DOM对象 (JAVA) 请问这样的JSP程序员能找到工作吗? 菜鸟来问问题关于JSP配置??????HELP! javabean tomcat 问题 关于动态的数据库表增删改的javabean问题 关于javaBeans和EJB的区别的问题? ?? jsp用什么开发工具对硬件要求比较低 关于jsp或applet调用本地DLL的问题 求助:servlet显示路径问题 正则表达式\B不成功,求大神解答
get是把参数数据队列加到提交表单的ACTION属性所指的URL中所以是信息不安全的;并且url的长度是有限制的。
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,是看不到相对安全一些;传递的参数无限制的。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,可以用Get方式,因为它效率高;而在做数据添加、修改或删除时,建议用Post方式,因为它安全;
至于ajax,那就更简单:ajax是异步,post是同步,至于很细的区分,你可以百度一下!
/** 全局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就自然明白了
$get也是实现异步请求的一种方式,是对$ajax的封装。类似于form表单中的get方式的求情,你懂的。
$post和$get差不多类似于form表单中的post方式的请求,希望对你有所帮助。