Ich bin neu bei Node js; Ich verstehe, wie man Cookie mit Node bekommt und setzt. Ich verwende Visual Studio und verwende den eingebetteten IIS Express, der automatisch erstellt wird. Es ist der Server-Code auf meinem server.js:Konnte nicht gesetzt werden mit Knoten js
var express = require('express');
var cookieParser = require('cookie-parser')
var app = express();
app.use(cookieParser())
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:61342');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.get('/setCookie/:param', function (req, res) {
res.cookie('testCookie', req.params.param);
console.log('cookie created!');
res.send();
});
var server = app.listen(8001, 'localhost', function() {
var host = server.address().address
var port = server.address().port
console.log("Server listening at http://%s:%s", host, port)
});
Und dies ist der Client-Code:
function server() {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://localhost:8001/setCookie/cookie1", true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert("ok");
}
}
xmlhttp.send();
}
ich diese funcion rufen, wenn ich auf einem Knopf klicken (nur zum Testen). Ich stelle fest, dass, wenn ich localhost: 8001/getCookie/cookie1 es richtig gesetzt Cookie (ich kann es auf der Browser-Konsole zu sehen, document.cookie eingeben), aber wenn ich mein Projekt auf localhost: 61342/und ich klicken Sie auf die Schaltfläche, die den Funktionsserver() aufrufen, erhalte ich diese Antwort:
Request URL:http://localhost:8001/setCookie/cookie1
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8001
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:X-Requested-With,content-type
Access-Control-Allow-Methods:GET, POST, OPTIONS, PUT, PATCH, DELETE
Access-Control-Allow-Origin:http://localhost:61342
Connection:keep-alive
Set-Cookie:testCookie=cookie1; Path=/
aber wenn ich auf Browser-Konsole document.cookie tippe ich sehe nichts. Irgendeine Idee, wie kann ich das lösen? Vielen Dank für die Geduld