一直在使用$.get(), $.post(), $.ajax(),但是它们之间的区别和联系一直没有完全搞清楚,这里记录一下。
首先简单的认识一下get与post请求
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
- GET – 从指定的资源请求数据。
- POST – 向指定的资源提交要被处理的数据
GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被收藏为书签
- GET 请求不应在处理敏感数据时使用
- GET 请求有长度限制
- GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1 Host: w3schools.com name1=value1&name2=value2
有关 POST 请求的其他一些注释:
- POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求对数据长度没有要求
$.ajax与$.post、$.get的区别
$.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更大。
当把$.ajax()中的参数type设为Get或Post,则分别同get()或post()
Comments