日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

CORS Cookie,和nodejs中的具體實(shí)現(xiàn)

 昵稱597197 2016-01-11

CORS(跨來(lái)源資源共享協(xié)議),高級(jí)瀏覽器(Chrome,firefox, opera, safir, ie10)在 XMLHttpRequest(AJAX) 中已經(jīng)支持了這個(gè)協(xié)議。可以實(shí)現(xiàn)ajax跨域訪問(wèn)。(其實(shí)IE8也實(shí)現(xiàn)了,只不過(guò)是另外一個(gè)對(duì)象)

由于是跨來(lái)源的的訪問(wèn),標(biāo)識(shí)HTTP狀態(tài)的Cookie的使用有一些特別處理。

Server Nodejs 代碼

res.setHeader('Access-Control-Allow-Origin', req.headers.origin);//注意這里不能使用 *
res.setHeader('Access-Control-Allow-Credentials', true);//告訴客戶端可以在HTTP請(qǐng)求中帶上Cookie
res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');

瀏覽器中 JS 代碼

var xhr = new XMLHttpRequest();
xhr.open("post", "xxx/xxx", true);
xhr.withCredentials = true;//放在 open 方法后面比較靠譜
xhr.onload = function(){}
xhr.send("a=1&b=2");  

  

CORS + Cookie 在nodejs + express 中的實(shí)現(xiàn)。

做一個(gè)/getInfo 的ajax接口。

瀏覽器會(huì)先發(fā)送一個(gè) options請(qǐng)求驗(yàn)證權(quán)限,最后再完成真的業(yè)務(wù)請(qǐng)求。

//首先做一個(gè) options 的請(qǐng)求返回CORS的頭信息。
app.options('/getInfo', function(req, res){
    res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
    res.setHeader('Access-Control-Allow-Credentials', true);
    res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
});
 
//請(qǐng)求的業(yè)務(wù)邏輯
app.get('/getInfo', function(req, res){
    res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
    res.setHeader('Access-Control-Allow-Credentials', true);
    res.end("I'm jun");
});

  

最后歡迎觀看CORS+WebSocket 做的一個(gè)在線用戶即時(shí)對(duì)話工具。http:///c/chat-js

Over

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多