token就是HTTP认证,输入正确的token,在放在Authorization header中发送给服务器,认证成功。,就可以正确的拿到接口数据.
举个例子:
第一步: 客户端发送http request 给服务器,
第二步: 因为request中没有包含Authorization header, 服务器会返回一个401 Unauthozied给客户端,并且在Response的 header "WWW-Authenticate" 中添加信息。
第三步:客户端把用户名和密码用BASE64加密后,放在Authorization header中发送给服务器, 认证成功。
第四步:服务器将Authorization header中的用户名密码取出,进行验证, 如果验证通过,将根据请求,发送资源给客户端
使用Fiddler Inspectors 下的Auth 选项卡,可以很方便的看到用户名和密码:
杂谈:
以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说:
你要登机,你需要出示你的身份证和机票,身份证是为了证明你张三确实是你张三,这就是 authentication;而机票是为了证明你张三确实买了票可以上飞机,这就是 authorization。
在 computer science 领域再举个例子:
你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是 authentication;再一check用户张三是个版主,所以有权限加精删别人帖,这就是 authorization。
function GetDateForServiceCustomer(userId) {
$.ajax({
url: 'http://*******/api/orders',
data: {
currUserId: userId,
type:
},
beforeSend: function(request) {
request.setRequestHeader("Authorization", token);
},
dataType: 'JSON',
async: false,//请求是否异步,默认为异步
type: 'GET',
success: function (list) {
},
error: function () {
}
});
}
$.ajax({
type: "POST",
headers: {
Accept: "application/json; charset=utf-8",
userToken: "" + userToken
},
url: "/index",
data: JSON.stringify(mytable.params),
contentType: "application/json",
dataType: "json",
success:function(data){ },error:function(data){ }
});
success:function(dat){
console.log(dat);
if(dat.code==){
sessionStorage.setItem('token',dat.data.access_token);
//这里设置缓存存储Token
sessionStorage.setItem('user',userName);
location.href = "index.html";
}else{
$(".tip2").html("用户名或密码错误");
}
}
原文地址:http://www.cnblogs.com/leijing0607/p/7494972.html