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: 1 }, 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==1){ 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