cookie:
干嘛的:存信息,存在了瀏覽器里
場(chǎng)景:自動(dòng)登錄,記住用戶名,購(gòu)物車(chē)....不重要的信息
特性:
域名:必須要有的,一個(gè)域名只有一套cookie
大小有限: ~32k 小因?yàn)槌霈F(xiàn)的早
1kb=1024字節(jié)(英文)
安全性: 被存隱私
session: 會(huì)話關(guān)閉時(shí)
c:/..... 本地
www.localhost.com/.....√
1)設(shè)置cookie(種)
document.cookie='name=value; expires=時(shí)間'
expires 過(guò)期時(shí)間
2) 取cookie
document.cookie
3) cookie 種在一級(jí)域名根下面
4) 域名:
1級(jí)域名 www.xxx.com/.net
2級(jí)域名 ooo.xxx.com/.net
www.baidu.com
tieba.baidu.com
document.cookie='xxx=ooo; path=/; domain=localhost; expires=時(shí)間'
*** path 必須要+,domain看公司要求
跨域數(shù)據(jù)交互(jsonp)
誰(shuí)能跨域:
JSONP/iframe-window.name/h5-POSTMESSAGE
jsonp(跨域)原理:
圖片可以跨域
SCRIPT標(biāo)簽也可以跨域
網(wǎng)上的一段js,調(diào)用了本地(自個(gè)域名)的函數(shù),并傳值,本地拿來(lái)用
網(wǎng)上的一段js == jsonp接口
抓接口:
wd: 搜索關(guān)鍵字
cb: 回調(diào)函數(shù)名 可以改
*** script標(biāo)簽是一次性
函數(shù)的命名規(guī)則:
以英文_開(kāi)頭,中間不要有英文數(shù)字之外的內(nèi)容
字符替換:
strObj.replace('要替換的字符','替換后的字符')
回調(diào)函數(shù)前面的鍵(cb),不是唯一的,需要傳入
jsonp封裝
function jsonp(url,data,success,error,cbKey,timeout){
//創(chuàng)建一個(gè)window下面的全局函數(shù)
data[cbKey] = ('jsonp'+Math.random()).replace('.','');
window[data[cbKey]] = function (json){
clearTimeout(timer);
success && success(json);
document.getElementsByTagName('head')[0].removeChild();
window[data[cbKey]] = null;
};
//整理data
var arr = [];
for (var key in data){
arr.push(key+'='+encodeURIComponent(data[cbKey]));
}
var str = arr.join('&');
//創(chuàng)建script標(biāo)簽
var oSc = document.createElement('script');
oSc.src = url+'?'+str;
document.getElementsByTagName('head')[0].appdenChild(oSc);
//判斷是否超時(shí)
if (timeout){
var timer = setTimeout(function(){
error && error();
window[data[cbKey]] = function (){
document.getElementsByTagName('head')[0].removeChild(oSc);
window[data[cbKey]] = null;
};
},timeout);
}
}