HTTP请求/Ajax请求方式总结

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),分别为:get,post,put, options,head,delete,trace,connect,来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:

  • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。
  • HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
  • GET:【查】向特定的资源发出请求
  • POST:【改】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改
  • PUT:【增】向指定资源位置上传其最新内容。如果URI不存在,则要求服务器根据请求创建资源;如果存在,服务器就接受请求内容,并修改URI的原始版本。
  • DELETE:【删】请求服务器删除Request-URI所标识的资源。
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。
  • CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。把请求连接转换到透明的 TCP/IP 通道。

上述方法中最基本的方法有4种,分别是GET,POST,PUT,DELETE。URI用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的【查,改,增,删】4个操作。

面试题:Get请求和post请求的区别
  • 根本的区别GET是用于获取数据,不会对数据进行更改;而POST是用于修改数据的,会对数据进行更改。
  • GET使用URL传参,数据放在URL里面 ,在浏览器中是可见的,非常不安全;而POST是将数据放在请求体中,用户不可见,相对比较安全
  • GET传递的数据是放在URL里面的,虽然HTTP协议规范中没有对URL长度进行限制,但是由于浏览器及服务器的限制,所以GET的URL会有长度上的限制,而POST可发送的数据没有长度限制
    *在这里插入图片描述
常见Ajax请求方式:
1、通过远程HTTP Get 请求载入信息
相比于复杂的$.ajax而言,GET请求功能则显得更加简单,请求成功时可调用回调函数。当然如果需要在出错时执行函数,那么还请使用$.ajax。

语法:$(selector).get(url,data,success(response,status,xhr),dataType)

$.get("https://www.baidu.com/", function (data, status) {
                alert("数据:" + data + "\n状态:" + status);
 }).error(function(msg){
            alert(JSON.stringify(msg))
  }); 

参数:
url:必须,请求发送的地址。
data:可选,发送到服务器的数据。
success:可选,请求成功时运行的函数

  • 1).response:包含结果的数据
  • 2).status:包含请求的状态
  • 3).xhr:包含XmlHttpRequest对象

dataType:服务器响应的数据类型,默认将智能判断

2、通过远程 HTTP POST 请求载入信息
POST请求功能也相对比较简单,请求成功时可调用回调函数。如果需要在出错时执行函数,那么请使用$.ajax请求。

语法:$(selector).post(url,data,success(data,status,jqXHR),dataType)

$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames }, function (data) {
if (data == "ok") {
alert("添加成功!");
}
})

参数:
url:必须,请求发送的地址。
data:可选,发送到服务器的数据。
success:可选,请求成功时运行的函数

  • 1).data:包含结果的数据
  • 2).status:包含请求的状态
  • 3).jqXHR:包含XmlHttpRequest对象

dataType:服务器响应的数据类型,默认将智能判断

3、通过 HTTP GET 请求载入 JSON 数据
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
4、$.ajax()返回其创建的 XMLHttpRequest 对象

$.ajax() 只有一个参数:参数key/value对象,包含各配置及回调函数信息。

如果你指定了dataType选项,那么需要保证服务器返回正确的MIME信息,(如 xml 返回 “text/xml”)。

实例:

$.ajax({
url: '/Resources/GetList.ashx',
type: "post",
data: dataurl,
success: function (data) {
	if (data != "") {
			$("#pager").pager({ pagenumber: pagenumber, pagecount: data.split("$")[1], buttonClickCallback: PageClick });
			$("#anhtml").html(data.split("$")[0]);
			}
		}
dataType: "html",
});
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值