新聞中心
Redis 是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),由于它的高性能、可靠性和易用性,它被廣泛地應(yīng)用在許多電商網(wǎng)站及社交網(wǎng)站等場(chǎng)景??缬颍–ross-origin resource sharing)是什么?說(shuō)得簡(jiǎn)單點(diǎn),就是當(dāng)你在瀏覽器中訪問(wèn)某個(gè)站點(diǎn)的某些資源,但這個(gè)資源又不屬于這個(gè)站點(diǎn),那么瀏覽器就會(huì)拋出跨域的問(wèn)題。由于安全因素,比如CSRF攻擊,如果請(qǐng)求發(fā)出去攜帶了某個(gè)網(wǎng)站的Cookies,這時(shí)候就可能會(huì)有安全危險(xiǎn),這就是跨域問(wèn)題。
在Redis跨域方面,要解決跨域的最有效的方式就是基于技術(shù)的解決方案。通過(guò)代理技術(shù),可以輕松解決redis跨域問(wèn)題。下面就來(lái)介紹兩個(gè)解決Redis跨域的常用技術(shù):
第一種方案: 基于CORS的解決方案。CORS(Cross-Origin Resources Sharing)利用瀏覽器的特性,它可以實(shí)現(xiàn)相同站點(diǎn)、不同域名的跨域訪問(wèn),核心就是瀏覽器限制不同域名之間的訪問(wèn)權(quán)限。當(dāng)瀏覽器端發(fā)送AJAX請(qǐng)求時(shí),瀏覽器會(huì)首先發(fā)送一個(gè)預(yù)檢請(qǐng)求,其中會(huì)攜帶Origin及AJAX請(qǐng)求的相關(guān)信息,服務(wù)端會(huì)對(duì)Origin進(jìn)行驗(yàn)證,決定是否給予瀏覽器端返回資源的權(quán)限。利用CORS,可以輕松解決跨域問(wèn)題,以下是CORS的代碼設(shè)置示例:
“`js
// 允許所有域名經(jīng)過(guò)授權(quán)可訪問(wèn)
res.writeHead(200, {
‘client-access-control-allow-origin’: ‘*’,
‘Access-Control-Allow-Headers’: ‘Content-Type’
});
// 只允許特定域名可訪問(wèn)
res.writeHead(200, {
‘client-access-control-allow-origin’: ‘http://example.cn[,http://www.example.com]’,
‘Access-Control-Allow-Headers’: ‘Content-Type’
});
第二種方案:利用JSONP。JSONP(JSON with Padding)是一個(gè)可以跨域訪問(wèn)的技術(shù),它通過(guò)在URL中添加回調(diào)函數(shù),使瀏覽器可以訪問(wèn)js文件,進(jìn)而實(shí)現(xiàn)跨域的目的。JSONP假設(shè)網(wǎng)站A的頁(yè)面從網(wǎng)站B請(qǐng)求內(nèi)容,需要將代碼需要重新編寫(xiě),以下是使用JSONP進(jìn)行Redis跨域的示例代碼:
```js
var callback = getQueryString(url, 'callback');
var script = document.createElement('script');
script.src = url;
script.type = 'text/javascript';
document.body.appendChild(script);
function success(data) {
script.parentNode.removeChild(script);
window[callback](data);
}
從上面可以看出,代碼中添加的回調(diào)函數(shù),可以讓瀏覽器將 data 傳遞給回調(diào)函數(shù),最終達(dá)到跨域目的。
以上就是解決Redis跨域問(wèn)題的兩種有效方式,CORS 是基于Http協(xié)議的解決方案,但是它要求服務(wù)端必須響應(yīng) Access-Control-Allow-Origin 字段;JSONP 利用腳本標(biāo)簽來(lái)注入后端資源,從而解決了跨域的問(wèn)題。兩種解決方式各有優(yōu)缺點(diǎn),使用時(shí)需根據(jù)實(shí)際需要做出選擇。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專(zhuān)注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶(hù)提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專(zhuān)注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動(dòng)、聯(lián)通等。
分享題目:解決Redis跨域問(wèn)題的有效方式(redis跨域問(wèn)題)
鏈接URL:http://m.5511xx.com/article/cdjcgjp.html


咨詢(xún)
建站咨詢(xún)
