jquery 提交post get中$.get()提交和$.post()提交有区别吗?

Jquery的$.ajax提交,$.get提交,$.post提交的问题_百度知道
Jquery的$.ajax提交,$.get提交,$.post提交的问题
我不明白什么情况下算get提交,什么情况下算post提交?get提交和post提交对url是否带参数是否有严格的要求?还是只是单纯的从业务是否安全的角度有这么一种写法规范?
我最开始以为ajax的type写get就是get,写post就是post,然后$.get就是get提交,$.post就是...
我有更好的答案
首先,如果要是考虑安全性问题的话,两种提交方式的参数都可以写在data中。get请求一般是获取数据为主,所传的参数也大多是查询数据所用的关键字或者键值,而post请求则是添加或者修改数据,为了数据的安全性所以尽量不要直接在URL中显示,再者可能所传参数较多,所以最好json序列化之后(保证安全性的话,再使用加密工具加密一下),作为对象数据写在data中传到后台,后台解密反序列化得到数据。以上仅代表个人的理解和观点,如有不对请各位知道达人指正!
那什么情况算是get,什么情况算post呢?而且两者都可以保证安全性的话,get和post就没有什么明显区别了,数据大小也是根据浏览器和服务器的不同而有所不同的,post实际上也是有限制的,那两者除了后台获取的方法不同之外就没有其他区别了?
get是从服务器上获取数据,post是向服务器传送数据。get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。get安全性非常低,post安全性较高。但是执行效率却比Post方法好。&&&&&get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。
这种复制的太老了,而且现在来看这种说法已经不准确了。get是获取post是传送这只是最初的Http的规范思想,还包括了put和delete,但是现在get和post已经没有所谓的获取和传送数据的区别了
根本区别两种方式传送数据量的大小不是一个级别的,怎能说是没区别?另外put和delete这两种以及get,post只是细化了几种方式所要做的事吧,post方式完全能做到put以及delete请求的事,只不过是细化了。delete方式的请求只做删除操作,不难理解吧。你要是非用delete的请求方式去添加,修改数据不知道可不可以。
数据量不同这个我知道的。我的疑惑是他们的安全性的差异上,不过安全性这个我的理解不深,只停留在url是否显示参数然后是我对网上很多人说的“post提交url不能带参数,应该写在data里,如果url里带参数了,即使是写的post仍然是get提交”这种说法有点吃惊,因为跟我测试的代码结果完全不符,所以很疑惑
就像你测试的那样,get请求时参数也完全可以写在data中,而且get也完全可以做到一些轻量级数据的添加,修改,删除操作,但是如果是较大数据量呢,get完全干不了,必须post。post请求时,若是非要把参数写在URL中也不是不可以,只不过这个请求是在添加,修改数据,为了保证其数据的安全性,相信大多数的人不会这么干。所以两者的本质区别并不是看URL带不带参数,get带参数,post不带参数,这只是约定俗成、规范性的一些东西;实际的区别还是传送数据量大小以及安全性的问题。没人愿意把添加、修改的一些数据暴露在URL中吧。
以上还是仅代表个人理解和观点。
采纳率:76%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
需要提交一个数字签名串,感觉数据量有点大,用的JQuery的Ajax方法的Post类型。结果问题来了,入库的数据签名无法还原,经比对是串中的“+”,被换成“ ”(空格)了,记得用form的get提交会引起该问题,看了一下代码,data中的传值方式如下, data:key1=value1&key2=value2,改为了 data:{key1:value1,key2:value2}的方式,就好了,不解。
看了一下JQuery,Ajax部分的源码,原来是 JQuery对于是string型的data,就不再处理,而对非string型的data再用&做连接的时候 做了替换处理,如下:s.join("&").replace(/%20/g, "+");,哦,原来如柴!
以后用js的机会很多,对于我这种对js只算得上一知半解的人,要多读一些成熟的js源码才行。
浏览: 29190 次
来自: 北京
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'页面提交 get 和 post 的方式有什么区别!!!
[问题点数:40分,结帖人Zcm00730]
本版专家分:22
CSDN今日推荐
本版专家分:947
本版专家分:10269
本版专家分:87
结帖率 100%
本版专家分:719
本版专家分:719
本版专家分:10
本版专家分:23514
本版专家分:0
本版专家分:9784
本版专家分:12705
本版专家分:71
本版专家分:52
本版专家分:52
本版专家分:52
本版专家分:1732
本版专家分:855
本版专家分:80
本版专家分:5
本版专家分:6766
本版专家分:5008
本版专家分:448910
2017年 总版技术专家分年内排行榜第十2013年 总版技术专家分年内排行榜第八
2017年2月 总版技术专家分月排行榜第三
2018年6月 .NET技术大版内专家分月排行榜第一2018年1月 .NET技术大版内专家分月排行榜第一2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2018年4月 .NET技术大版内专家分月排行榜第二2018年3月 .NET技术大版内专家分月排行榜第二2017年12月 .NET技术大版内专家分月排行榜第二2017年9月 .NET技术大版内专家分月排行榜第二2017年7月 .NET技术大版内专家分月排行榜第二2017年6月 .NET技术大版内专家分月排行榜第二2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本版专家分:1943
本版专家分:22
本版专家分:0
匿名用户不能发表回复!|jQuery.get()方法:
$.get(url,data,success(response,status,xhr),dataType)
该函数是简写的 Ajax 函数,等价于:
data: data,
success: success,
dataType: dataType
根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML root 元素、文本字符串、JavaScript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。
必需。规定将请求发送的哪个 URL。
可选。规定连同请求发送到服务器的数据。
success(response,status,xhr)
可选。规定当请求成功时运行的函数。
额外的参数:
response - 包含来自请求的结果数据
status - 包含请求的状态
xhr - 包含 XMLHttpRequest 对象
可选。规定预计的服务器响应的数据类型。
默认地,jQuery 将智能判断。
可能的类型:
使用 AJAX 的 GET 请求来改变 div 元素的文本:
$("button").click(function(){
$.get("demo_ajax_load.txt", function(result){
$("div").html(result);
jQuery.post()方法:
$.post(url,data,success(data, textStatus, jqXHR),dataType)
该函数是简写的 Ajax 函数,等价于:
type: 'POST',
data: data,
success: success,
dataType: dataType
根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML 根元素、文本字符串、JavaScript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。
必需。规定把请求发送到哪个 URL。
可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR)
可选。请求成功时执行的回调函数。
可选。规定预期的服务器响应的数据类型。
默认执行智能判断(xml、json、script 或 html)。
使用 AJAX 的 GET 请求来改变 div 元素的文本:
$("input").keyup(function(){
txt=$("input").val();
$.post("demo_ajax_gethint.asp",{suggest:txt},function(result){
$("span").html(result);
一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:
Ajax.aspx:
Response.ContentType = "application/json";Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");
jQuery 代码:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" },
function (data, textStatus){
// data 可以是 xmlDoc, jsonObj, html, text, 等等.
// 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this
alert(data.result);
}, "json");
点击提交:
这里设置了请求的格式为"json":
$.ajax()这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。这里有几个Ajax事件参数:beforeSend ,success ,complete ,error 。我们可以定义这些事件来很好的处理我们的每一次的Ajax请求。
url: 'stat.php',
type: 'POST',
data:{Name:"keyun"},
dataType: 'html',
timeout: 1000,
error: function(){alert('Error loading PHP document');},
success: function(result){alert(result);}
$.get()与$.post()的区别:
《计算机网络》对POST和GET方法在HTTP协议中的简单解释:HTTP协议定义了通信的两种报文:请求报文和响应报文。对于请求报文来说,它的通用格式包含三个主要部分:请求行、首部行、实体主体。通常请求行的格式为:方法字段 、 URL字段、 HTTP协议版本字段,其中方法字段就包括GET、POST方法等。
当方法字段是GET方法时内容主体为空,而是用POST方法时才使用实体主体。
HTTP客户机通常在用户提交表单时使用POST方法,这时,实体主体中所包含的就是用户在表单中的输入值。当然,GET方法也可以提交表单中的数据,它是通过将用户在表单中的输入值传送到正确的URL来实现的。这就是我们通常所看到的http://ei.hust.edu.cn?username="libis"&age=12。
  可以看出,在表单提交的方式上两者存在很大的不同:
Post方法将表单数据填充到HTTP请求报文中的实体主体部分,使用者是看不到的。而GET方法则是将表单数据直接传送到请求行的URL字段来实现表单数据提交的。这也就决定了使用POST是相对比较安全的,而是用GET方法的安全性就很低。
  除此之外,GET方法和POST方法另一个重要的区别是:
GET方法传送的数据量较小,一般只有2k。而POST方法传送的数据量较大,理论上没有上限。
$.ajax()需要注意的一些地方:
& 1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。
& 2.$.ajax只提交form以文本方式,如果异步提交包含&file&上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit
$.ajax() 实际应用例子
//1.$.ajax带json数据的异步请求
var aj = $.ajax( {
url:'productManager_reverseUpdate',// 跳转到 action
selRollBack : selRollBack,
selOperatorsCode : selOperatorsCode,
PROVINCECODE : PROVINCECODE,
pass2 : pass2
type:'post',
cache:false,
dataType:'json',
success:function(data) {
if(data.msg =="true" ){
// view("修改成功!");
alert("修改成功!");
window.location.reload();
view(data.msg);
error : function() {
// view("异常!");
alert("异常!");
//2.$.ajax序列化表格内容为字符串的异步请求
function noTips(){
var formParam = $("#form1").serialize();//序列化表格内容为字符串
type:'post',
url:'Notice_noTipsNotice',
data:formParam,
cache:false,
dataType:'json',
success:function(data){
//3.$.ajax拼接url的异步请求
var yz=$.ajax({
type:'post',
url:'validatePwd2_checkPwd2?password2='+password2,
cache:false,
dataType:'json',
success:function(data){
if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间
textPassword2.html("&font color='red'&业务密码不正确!&/font&");
$("#validatePassword2").val("pwd2Error");
checkPassword2 = false;
error:function(){}
//4.$.ajax拼接data的异步请求
url:'&%=request.getContextPath()%&/kc/kc_checkMerNameUnique.action',
type:'post',
data:'merName='+values,
async : false, //默认为true 异步
error:function(){
alert('error');
success:function(data){
$("#"+divs).html(data);
阅读(...) 评论()jquery :$.post() $.get() 与$.ajax()的区别
$.ajax 是 jQuery 底层 AJAX 实现,$.ajax是一种通用的底层封装,$.ajax()请求数据之后,则需要使用,有beforeSend、error、dataFilter、success、complete等。$.get $.post是简单易用的高层实现,我们使用$.get $.post方法,jQuery会自动封装调用底层的$.ajax。$.get 只处理简单的 GET 请求功能以取代复杂 $.ajax,请求成功时可调用。不支持出错时执行函数,否则必须使用$.ajax。$.post 只处理 post请求功能以取代复杂 $.ajax 。请求成功时可调用。不支持出错时执行函数,否则必须使用$.ajax。$.get("test.php", { name: "John", time: "2pm" } ) $.get方法在请求时会自动生成queryString提交给服务器(name=John&time=2pm),$.post方法提交的数据直接类似表单提交,提交的数据量比$.get更大。
没有更多推荐了,

我要回帖

更多关于 jquery ajax get post 的文章

 

随机推荐