先来看一个代码样例:
$.ajax({
url: 'http://blog2019.applinzi.com/api/blogs',
type: 'GET',
contentType: "application/json",
success: function (data) {
var html = '';
console.log(data);
for (i = 0; i < data.length; i++) {
html += '<div class="panel panel-primary">' +
' <div class="panel-heading">' + data[i].blogText +
'<div class="f-r">' + getMyDate(Number(data[i].date)) + '</div>' + '</div>' +
' <div class="panel-body" id = "details">' + '<a href = "./Details.html?id=' + data[i]._id + '" target = "_blank">' + data[i].introText + '</a>' + '</div>' +
'<div class="panel-footer">' + getCategoryNameById(data[i].languageId) + '</div>' + '</div>'
}
$('.post-wrapper').html(html);
},
error: function (error) {
debugger;
console.log(error);
}
});
对于上面的代码,我们来看一下几个主要的参数:
type的请求分为POST和GET两种。get与post的区别有很多,但是从我自己的角度来看get和post的区别时:
GET的目的就如同其名字一样是用于获取信息的。它旨在显示出页面上你要阅读的信息。浏览器会缓冲GET请求的执行结果,如果同样的GET请求再次发出,浏览器就会显示缓冲的结果而不是重新运行整个请求。这一流程不同于浏览器的处理过程,但是它是有意设计成这样以使GET调用更有效率。GET调用会检索要显示在页面中的数据,数据不会在服务器上被更改,因此重新请求相同数据的时候会得到相同的结果。
POST方法应该用于你需要更新服务器信息的地方。如某调用要更改保存在服务器上的数据,而从两个同样的POST调用返回
的结果或许会完全不同,因为第二个POST调用的值与第一个的值不相同,这是由于第一个调用已经更新了其中一些值。POST调用通常会从服务器上获取响应而不是保持前一个响应的缓冲。
在面试中我们经常会被问到post与get的区别,我总结出以下几点:
get参数通过url传递,post放在request body中。
get请求在url中传递的参数是有长度限制的,而post没有。
get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
get请求只能进行url编码,而post支持多种编码方式
get请求会浏览器主动cache,而post支持多种编码方式。
GET产生一个TCP数据包;POST产生两个TCP数据包。
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
对于url来说,分为两种情况:
一种是直接把后台的接口地址写进去就可以,一种是需要我们进行拼接。
var xmlHttp = new XMLHttpRequest();
{
if (xmlHttp.readyState == 4)
if (xmlHttp.status == 200) {
var responseText = xmlHttp.responseText;
}
}
//get请求下参数加在url后:.ashx?methodName = GetAllComment&str1=str1&str2=str2
xmlHttp.open("post", "/ashx/myzhuye/Detail.ashx?methodName=GetAllComment", true);
post请求下需要配置请求头信息:
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
发送请求,post请求下,要传递的参数放这
xmlHttp.send("methodName = GetAllComment&str1=str1&str2=str2");
function callback1() {
if (xmlHttp.readyState == 4)
if (xmlHttp.status == 200) {
//取得返回的数据
var data = xmlHttp.responseText;
//json字符串转为json格式
data = eval(data);
$.each(data,
function (i, v) {
alert(v);
});
}
}
原文:https://www.cnblogs.com/wangjian2016/p/11373885.html