Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Cookie, domänenübergreifender Zugriff, Werbung, Promotion_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:04:39
Original
1985 Leute haben es durchsucht

In praktischen Anwendungen kann die domänenübergreifende Nutzung von Wettervorhersagekomponenten mit der oben genannten Methode umgesetzt werden. Eine weitere gängige Methode ist die Anzeige von Werbeanzeigen bestimmter E-Commerce-Unternehmen. Diese Anzeige scrollt durch die von Ihnen besuchten Produkte oder die Assoziationen Sie möchten Ihr Produkt weiterempfehlen.

Beispielsweise werden auf einer Webseite A zwei Arten von Werbung angezeigt:

Einige Dinge, die in Dongdongs Anzeigen angezeigt werden, wurden von Didi besucht und verwandte Dinge wurden empfohlen

Die Werbung für ein bestimmtes Produkt wird grundsätzlich auf die gleiche Weise präsentiert.

Beim Zugriff auf ein Produkt von Dongmoubao werden die Informationen im Cookie abgelegt und die Darstellung basiert auf den Produktinformationen im Cookie.

Hier kommt das Problem.

Die Site, auf der sich die A-Webseite befindet, und die Site von Dongbao müssen zwei unabhängige Domänennamen sein. Wenn Sie auf der A-Webseite auf das Cookie von Dongbao zugreifen, können Sie es nicht abrufen, da sie aus unterschiedlichen Quellen stammen 🎜>

Es ist unmöglich und unangemessen, Produktinformationen auf der Webseite A selbst darzustellen.


Natürlich müssen Produktinformationen domänenübergreifend dargestellt werden. Die Probleme, die gelöst werden müssen, sind:


1. Cookies können nicht von Skripten abgerufen werden, die von domänenübergreifenden Diensten generiert werden. Cookies können nur von domänenübergreifenden Servern abgerufen werden


Warum? , wird das vom domänenübergreifenden Dienst generierte Skript schließlich auf Webseite A ausgeführt. Das Cookie, auf das in dem vom domänenübergreifenden Dienst generierten Skript zugegriffen wird, kann nur das Cookie der Website sein, auf der sich Webseite A befindet, was falsch ist


2. Der domänenübergreifende Diensthintergrund kann Cookies erhalten


Die Antwort lautet „Ja“. Solange der Browser eine Anfrage an einen bestimmten Domainnamen/eine bestimmte Adresse stellt, wird das entsprechende Cookie angezeigt.


Lassen Sie uns also eine einfache Demo implementieren


Demo-Architektur: node.js+express


1. Bei domänenübergreifenden Diensten kann es sich um ein E-Commerce-Unternehmen handeln, das eine Seite zur Eingabe von Produktinformationen bereitstellt, besuchte Dinge simuliert und diese nach der Eingabe in einem Cookie speichert.


Seite


Der Code dient dazu, die Eingabe plus eine Ablaufzeit im Cookie zu speichern. Natürlich müssen Sie ihn einfach zuerst codieren.


<!DOCTYPE html>
<html>
<head>
<title>setCookie</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
<h1>看过的商品</h1>
<div>
<span>商品1</span><input id="s1">
</div>
<p></p>
<div>
<span>商品2</span><input id="s2">
</div>
<p></p>
<div>
<span>商品3</span><input id="s3">
</div>
<p></p>
<div>
<span>商品4</span><input id="s4">
</div>
<p></p>
<div>
<input id="b" type="button" value="保存进cookie" onclick="saveInCookie();">
</div>
<script>
function saveInCookie(){
//所有商品信息
var eleS1=document.getElementById('s1');
var eleS2=document.getElementById('s2');
var eleS3=document.getElementById('s3');
var eleS4=document.getElementById('s4');
//生成24小时后过期的参数
var date=new Date();
var expiresMSeconds=3*24*3600*1000;
date.setTime(date.getTime()+expiresMSeconds);
//商品信息全部设置到cookie中
document.cookie='s1='+escape(eleS1.value)+";expires="+date.toGMTString();
document.cookie='s2='+escape(eleS2.value)+";expires="+date.toGMTString();
document.cookie='s3='+escape(eleS3.value)+";expires="+date.toGMTString();
document.cookie='s4='+escape(eleS4.value)+";expires="+date.toGMTString();
alert(document.cookie);
}
</script>
</body>
</html> 
Nach dem Login kopieren
2. Schreiben Sie im domänenübergreifenden Dienst einen Code, um auf der Serverseite ein Skript zu generieren. Dekodieren Sie beim Generieren des Skripts die Daten im vom Browser bereitgestellten Cookie und fügen Sie sie in das Skript ein.


Hier wird das Cookie über das Anforderungsobjekt abgerufen. Die Methode kann auf anderen Plattformen unterschiedlich sein, aber das Prinzip ist dasselbe und der Browser überträgt es.


router.get('/ad', function (req, res) {
//拼接一JS字符串,完成向html页面中输出html标记
printCookies(req.cookies);
var s = 'document.write(\'<div style="background-color:red;width:10rem;height:10rem">商品广告';
//将cookie中所有的商品取出,拼到脚本字符串中
for (var p in req.cookies) {
s += '<div>' + unescape(req.cookies[p]) + '</div>';
}
s+='</div>\');';
console.log(s);
res.setHeader('content-type', 'text/javascirpt;charset=utf-8');
res.write(s);
res.end();
});
function printCookies(cookies) {
console.log('******cookies******');
for (var p in cookies) {
console.log(p + '=' + unescape(cookies[p]));
}
console.log('*******************');
} 
Nach dem Login kopieren
3. Stellen Sie eine Skriptanforderung an den domänenübergreifenden Dienst auf der A-Webseite der lokalen Website.


Unter anderem wird über das Skript-Tag auf die Adresse des Skripts verwiesen, das im domänenübergreifenden Dienst bereitgestellt wird.

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<link rel="stylesheet" href="/stylesheets/style.css"></head>
<body>
<script src="http://localhost:3001/ad"></script>
<h1>航班信息</h1>
<h4>航班号:MU532</h4>
<h4>起飞:北京</h4>
<h4>抵达:上海</h4>
</body>
</html> 
Nach dem Login kopieren
Nachdem die Seite aufgerufen wurde, werden, wie im Bild unten gezeigt, die besuchten Produktinformationen aufgelistet, was wie eine kleine Werbung aussieht.


Das ist es, fertig.


Hier finden Sie alle relevanten Informationen zum domänenübergreifenden JavaScript-Cookie-Zugriff und zur Werbeförderung. Ich hoffe, dass es für alle hilfreich ist!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!