温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ajax请求的原理 get及post方法 和get,post请求方式的区别

发布时间:2020-08-08 15:56:03 来源:网络 阅读:1193 作者:浅嫣 栏目:开发技术

Ajax请求的原理

1.原理:在Ajax请求中,html页面的中操作将通过Ajax引擎与服务器端进行通讯,然后将返回的结果提交到客户端页面的Ajax引擎,再由Ajax引擎来决定将服务器端返回数据插入到页面的指定位置。从而实现无需刷新页面的http请求。

2.Ajax请求的优点

 a.最大的优点是,无需刷新就可更新页面

 b.可以把原先服务器端负担的工作的转移客户端,利用客户端的闲置资源进行处理,减轻服务器和带宽的负担,节约空间和成本

 c.Ajax没有平台限制。Ajax把服务器由原先的传送内容转变为传输数据,而数据格式可以为纯文本和XML格式,这两种格式没有平台限制。

 d.可以调用Xml等外部数据,进一步促进页面的显示和数据的分离

3.Ajax使用的技术

 a.XMLHttpRequest对象

 b.XML

 c.JavaScript

 d.Css

 e.DOM

4.Ajax请求时性能的优化

 a.尽量使用局部变量,不要使用全局变量

 b.优化for循环

 c.尽量少使用eval,每次使用eval都会浪费大量时间

 d.将DOM节点附加到文档上

 e.尽量减少使用点“.”号操作符的使用

 

 

方法get()和post()基本区别:

 

HTTP 请求:GET vs. POST

 

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

 

· GET - 从指定的资源请求数据

 

POST - 向指定的资源提交要处理的数据

 

GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。

 

POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。

 

 

 

1.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

2.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。

3.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异。

4.get安全性非常低,post安全性较高。

5.<form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是一样的,也就是说,method为get时action页面后边带的参数列表会被忽视;而<form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不一样的。

 

JQeury的3种实现方式

1. $.ajax( ) 语法:$.ajax({键值对});

2.  $.get():发送get请求语法:$.get(url, [data], [callback], [type])

url:请求路径

Data:请求参数,即 发送的数据  {key:value}形式 ,

Callback:成功时的回调函数 function(result){}  result 后台返回的数据  ,

Type响应结果的类型: 返回的数据类型  默认为 text ,可以设为 json text

3. $.post():发送post请求 :* 语法:$.post(url, [data], [callback], [type])

 

 

通过jQuery发送ajax请求,在代码和使用上谈谈post和get的区别:

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 

代码区别

1. get 方式 发送请求 语法: $.get(url,data,callback,type);

 url:请求路径

Data:请求参数,即 发送的数据  {key:value}形式 ,

Callback:成功时的回调函数 function(result){}  result 后台返回的数据  ,

Type响应结果的类型 返回的数据类型  默认为 text ,可以设为 json text

2. post 方式 发送请求 语法: $.post(url,data,callback,type);

$.get()方法使用GET方式执行Ajax请求,从服务器加载数据。形式:$.get(url, data, func, dataType)

$.post()方法:使用POST方式执行Ajax请求,从服务器加载数据。形式:$.post(url, data, func, dataType);

可选参数:

1)url:链接地址,字符串表示

2)data:需要发送到服务器的数据,格式为{A: '...', B: '...'}

3)func:请求成功后,服务器回调的函数;function(data, status, xhr),其中data为服务器回传的数据,status为响应状态,xhr为XMLHttpRequest

4)dataType:服务器返回数据的格式

 

2.Ajax的Get和Post的使用区别:

总结

1)GET方式 传送数据量小,安全性低,会被缓存,处理效率高,而post是将参数放在请求的表单体内

2)在向服务器传参数时,get是将参数直接添加到url后面;post是将参数放在请求的表单体内

3)当请求无副作用时(如进行搜索),便可用GET方法;当请求有副作用时(如添加数据行),则用POST方法。post适合大量数据(不受url长度限制)和需要安全的数据传输(传输的数据不会在url上出现) 

 

 

 

 

使用post发送请求注意设置,post默认发送方式是application/x-www-form-urlencoded这个就是content-type请求头类型,如果不指定可能请求会失败application/x-ww

get请求和post请求在服务器端的区别:

 在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,

而客户端使用post请求时,服务器端使用Request.Form来获取参数. 

 

   1.Get方式
   用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器的历史记录中,读取到此客户的数据,比如帐号和密码等。因此,在某些情况下,get方法会带来严重的安全性问题。

总结:GET请求方式:URL传值的方式进行请求,一般大小限制在1KB(最多只能是1024字节)以下,这个数据会被浏览器缓存起来,所以账号密码用户ID肯定是不能这样传递(暴露不安全)

Ajax发送请求:如果是get请求send(参数)参数:必须是null或xhr.send();

    get请求就不必要设置 xhr.setRequestHeader(header,value)

备注:如果xhr.send(参数);参数不为空情况下,在某些浏览器中会自动转换成post请求方式 您可以通过request.getMethod();方法获取请求的方式

使用get方式需要注意
            (1)对于get请求(或凡涉及到url传递参数的),被传递的参数都要先经(预编码处理)encodeURIComponent方法处理.

例:var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent(content)+"&id=1" ;

 

2.Post方式:
         当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息      的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用  POST方式传递的数据量要比使用GET方式传送的数据量大的多

总结:POST请求方式:一般用于发送表单(input这样的form表单)数据,安全性比get高,数据量也大而且不会被浏览器缓存

发送请求:如果是post请求send(参数)参数:参数可以是null或者xhr.send()|send(带有参数的)post请求在传递值的情况下必须 设置          xhr.setRequestHeader(header,value)

 

应用场景
总结:

1)当请求无副作用时(如进行搜索),便可使用get方法当请求有副作用时(如添加数据行),则用POST方法

2)如果调用是要检索服务器上的数据则使用GET。如果要检索的值会随时间和更新进程的改变而改变则要在GET调用中添加一个当前时间参数,这样后面的调用才不会使用先前的不正确的缓冲。

   如果调用是向服务器发送任意数据,就可以使用POSTPOST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。


GET方法应用场景
* 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
* 请求结果无持续性的副作用。
* 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

GET 请求的其他一些注释:

· GET 请求可被缓存

· GET 请求保留在浏览器历史记录中

· GET 请求可被收藏为书签

· GET 请求不应在处理敏感数据时使用

· GET 请求有长度限制

· GET 请求只应当用于取回数据

 

POST方法应用场景
* 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
* 若使用GET方法,则表单上收集的数据可能让URL过长。
* 要传送的数据不是采用7位的ASCII编码。

POST 请求的其他一些注释:

· POST 请求不会被缓存

· POST 请求不会保留在浏览器历史记录中

· POST 不能被收藏为书签

· POST 请求对数据长度没有要求


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI