cookie和跨域數(shù)據(jù)交互(jsonp)

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);
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是跨域? 2.) 資源嵌入:、、、等dom標(biāo)簽,還有樣式中background:url()、@font-fac...
    電影里的夢(mèng)i閱讀 2,475評(píng)論 0 5
  • 跨域問(wèn)題產(chǎn)生的原理是指通過(guò)js在不同的域之間進(jìn)行數(shù)據(jù)傳輸或通信,比如用ajax向一個(gè)不同的域請(qǐng)求數(shù)據(jù),或者通過(guò)js...
    往復(fù)隨安_cc75閱讀 560評(píng)論 0 1
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    w_zhuan閱讀 622評(píng)論 0 0
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    他在發(fā)呆閱讀 863評(píng)論 0 0
  • 松下最新“先拍照后對(duì)焦”固件已經(jīng)正式發(fā)布,這次固件升級(jí)主要針對(duì)松下GX8,G7和FZ300。固件版本為2.0。免費(fèi)...
    相機(jī)Beta閱讀 614評(píng)論 0 0

友情鏈接更多精彩內(nèi)容