Szenario-Wiederholungsprozess:
<code>机器A局域网地址:192.168.9.8 机器B局域网地址:192.168.9.9 </code>
<code>分别配置机器A、B的hosts地址: 配置机器A的地址:192.168.9.8 --> a.site.com 配置机器B的地址:192.168.9.9 --> b.site.com </code>
Maschine A ist der Front-End-JS-Code, startet den Dienst und fordert die erste Adresse von Maschine B (die die Serverseite darstellt)
http://b.site.com:8080/ an Beim Browser-Login/... fügt der Server gleichzeitig mit der Anfrage Cookies ein.
Setzen Sie den Cookie-Schlüssel auf „site“, den Wert auf „date“, den Domainnamen auf „.site.com“ und den Pfad auf „/“. > und durchsuchen Sie dann eine neue Seite auf dem Server und fordern Sie http://a.site.com:8080/index auf der neuen Seite an. Sie können die Seite
http://b.site.com:8080 sehen /
Injektion über das Chrome-Konsolen-Cookie, aber ... Bei Verwendung der Schnittstelle über Ajax erscheint das Cookie nicht im Anforderungsheader. Ich habe verschiedene Methoden ausprobiert, einschließlich get, post, asynchron und synchron, aber keine von ihnen funktionieren. Schließlich wurde die JSONP-Methode verwendet und das Cookie erschien
<code>$("a").click(function(event) { $.ajax({ url: 'http://b.site.com:8080/test/test.htm', type: 'post', dataType: 'json', data: {'token': 'value'}, }) .done(function() { console.log("success"); }) .fail(function() { console.log("error"); }) .always(function() { console.log("complete"); }); }); </code>
<code>function flightHandler(data) { console.log(data); // body... }; $("a").click(function(event) { $.ajax({ type: "get", url: "http://b.site.com:8080/test/test.htm", dataType: "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function(data){ console.log(data); }, error: function(){ alert('fail'); } }); }); </code>
Antwortinhalt:
<code>机器A局域网地址:192.168.9.8 机器B局域网地址:192.168.9.9 </code>
<code>分别配置机器A、B的hosts地址: 配置机器A的地址:192.168.9.8 --> a.site.com 配置机器B的地址:192.168.9.9 --> b.site.com </code>
Maschine A ist der Front-End-JS-Code, startet den Dienst und fordert die erste Adresse von Maschine B (die die Serverseite darstellt)Der Code, der nicht einfach zu verwenden ist, lautet wie folgt:http://b.site.com:8080/ an Beim Browser-Login/... fügt der Server gleichzeitig mit der Anfrage Cookies ein.
Setzen Sie den Cookie-Schlüssel auf „site“, den Wert auf „date“, den Domainnamen auf „.site.com“ und den Pfad auf „/“. > und durchsuchen Sie dann eine neue Seite auf dem Server und fordern Sie http://a.site.com:8080/index auf der neuen Seite an. Sie können die Seite
http://b.site.com:8080 sehen /
Injektion über das Chrome-Konsolen-Cookie, aber ... Bei Verwendung der Schnittstelle über Ajax erscheint das Cookie nicht im Anforderungsheader. Ich habe verschiedene Methoden ausprobiert, einschließlich get, post, asynchron und synchron, aber keine davon sie haben funktioniert. Schließlich wurde die JSONP-Methode verwendet und das Cookie erschien
Der nützliche Code lautet wie folgt:
<code>$("a").click(function(event) { $.ajax({ url: 'http://b.site.com:8080/test/test.htm', type: 'post', dataType: 'json', data: {'token': 'value'}, }) .done(function() { console.log("success"); }) .fail(function() { console.log("error"); }) .always(function() { console.log("complete"); }); }); </code>
Bitte helfen Sie mir, wenn Sie mir helfen können, vielen Dank
<code>function flightHandler(data) { console.log(data); // body... }; $("a").click(function(event) { $.ajax({ type: "get", url: "http://b.site.com:8080/test/test.htm", dataType: "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function(data){ console.log(data); }, error: function(){ alert('fail'); } }); }); </code>
withCredentials=true und stellen Sie sicher, dass der Server domänenübergreifend zulässt. Weitere Informationen finden Sie unter cors
Domain ist nicht das, was Sie sagen. Cookie-Domain und Ajax-Domain sind nicht dasselbe