Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 膝关节炎曲奇返回“未定义”_Javascript_Node.js_Cookies_Koa_Koa Router - Fatal编程技术网

Javascript 膝关节炎曲奇返回“未定义”

Javascript 膝关节炎曲奇返回“未定义”,javascript,node.js,cookies,koa,koa-router,Javascript,Node.js,Cookies,Koa,Koa Router,从浏览器向服务器中的/generateurl发送POST请求后,我想创建一个字符串并将其保存为cookie。当GET请求稍后从浏览器发送到服务器中的/retrieveurl时,我希望将该字符串作为响应发送到客户端 以下是我尝试过的: routes.js const Router = require('koa-router') const router = new Router() router.post('/generate', function * () { this.cookies.s

从浏览器向服务器中的
/generate
url发送POST请求后,我想创建一个字符串并将其保存为cookie。当GET请求稍后从浏览器发送到服务器中的
/retrieve
url时,我希望将该字符串作为响应发送到客户端

以下是我尝试过的:

routes.js

const Router = require('koa-router')
const router = new Router()

router.post('/generate', function * () {
  this.cookies.set('generatedString', 'example')
  this.response.body = 'String saved as cookie!'
})

router.get('/retrieve', function * () {
  const cookie = this.cookies.get('generatedString')
  console.log(cookie) // undefined!
  this.response.body = cookie
})
为什么执行
this.cookies.get('generatedString')
返回
undefined
,即使POST请求处理程序已经运行并且应该设置该cookie?任何帮助都将不胜感激


EDIT:如果它很重要,我想值得一提的是,我正在使用
fetch
API进行POST和GET请求

如果它很重要,我想值得一提的是,我正在使用fetchapi发出POST和GET请求

其中提到,“默认情况下,fetch不会向服务器发送任何cookie,如果站点依赖于维护用户会话,则会导致未经验证的请求。”

如果希望
fetch
发送cookie,则需要在发送的请求中添加一个名为
credentials
的选项,并将其设置为
include

POST请求示例:

const request = {
  method: 'POST',
  credentials: 'include',
  headers: ...,
  body: ...
}

fetch('/generate', request).then(...)
fetch('/retrieve', { credentials: 'include' }).then(...)
获取请求示例:

const request = {
  method: 'POST',
  credentials: 'include',
  headers: ...,
  body: ...
}

fetch('/generate', request).then(...)
fetch('/retrieve', { credentials: 'include' }).then(...)