最近一段时间开始入手前端页面和后端功能的编写,对于get和post请求,只知些许的皮毛,现在综合网上的一些文案,做一下总结。

1、HTTP 请求:GET vs. POST

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

  • GET
  • POST

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

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

下面的表格比较了两种 HTTP 方法:GET 和 POST。

 

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

2、HTTP 请求实体


定义和用法

$.get() 方法使用 HTTP GET 请求从服务器加载数据。


实例

请求 "test.php",但是忽略返回结果:



$.get("test.php");



请求 "test.php" 并连同请求发送一些额外的数据(忽略返回结果):



$.get("test.php", { name:"Donald", town:"Ducktown" });



请求 "test.php" 并传递数据数组到服务器(忽略返回结果):



$.get("test.php", { 'colors[]' : ["Red","Green","Blue"] });



请求 "test.php" 并提醒请求的结果:



$.get("test.php", function(data){
alert("Data: " + data);
});




语法



$.get( URL,data,function(data,status,xhr),dataType)



参数

描述

URL

必需。规定您需要请求的 URL。

data

可选。规定连同请求发送到服务器的数据。

function(data,status,xhr)

可选。规定当请求成功时运行的函数。

额外的参数:

  • data
  • status
  • xhr

dataType

可选。规定预期的服务器响应的数据类型。

默认地,jQuery 会智能判断。

可能的类型:


  • "xml" - 一个 XML 文档
  • "html" - HTML 作为纯文本
  • "text" - 纯文本字符串
  • "script" - 以 JavaScript 运行响应,并以纯文本返回
  • "json" - 以 JSON 运行响应,并以 JavaScript 对象返回
  • "jsonp" - 使用 JSONP 加载一个 JSON 块,将添加一个 "?callback=?" 到 URL 来规定回调


实例

请求 test.php 网页,忽略返回值:



$.post("test.php");



通过 AJAX POST 请求改变 div 元素的文本:



$("input").keyup(function(){ txt=$("input").val(); $.post("demo_ajax_gethint.asp",{suggest:txt},function(result){ $("span").html(result); }); });


定义和用法

post() 方法通过 HTTP POST 请求从服务器载入数据。


语法

jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)

参数

描述

url

必需。规定把请求发送到哪个 URL。

data

可选。映射或字符串值。规定连同请求发送到服务器的数据。

success(data, textStatus, jqXHR)

可选。请求成功时执行的回调函数。

dataType

可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script 或 html)。


详细说明

该函数是简写的 Ajax 函数,等价于:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML 根元素、文本字符串、JavaScript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。