AJAX 没有将我的 cookie 发送到 NODE JS 服务器
AJAX not sending my cookie to NODE JS SERVER
我在 NodeJs 中有一个 API,我需要在其中验证令牌以让用户传递该中间件并检索 storeId
。
我的 localhost 中有一个带有 ts
键的 cookie:
cookie ts in application dev tools
我有 AJAX 电话。
$.ajax({
type:'POST',
dataType: 'JSON',
url: 'http://www.localhost:8090/product',
data: product,
xhrFields: { withCredentials: true },
crossDomain: true,
async: false,
success: result => {
console.log(result)
$('#FormLoading').remove()
}
})
并且出于某种原因它仍然没有发送令牌但是
在主页仪表板等其他页面中它可以工作。
response
ts
密钥用于 localhost
域,您正在调用 http://www.localhost:8090/product
。通常,如果您的 cookie 的域类似于 API URL 的域,则 cookie
键及其 值 将插入 header 请求自动作为字符串系列。但是这里你的 cookie 的域是 localhost
而 API 的域是 www.localhost
。所以 AJAX 忽略 cookie.You 应该用通配符设置 cookie 域,当在 node js 服务器响应中生成 cookie 时登录请求,或将 API 的基数 URL 更改为 localhost
。顺便说一下,这可能会有所帮助 How do browser cookie domains work?
我在 NodeJs 中有一个 API,我需要在其中验证令牌以让用户传递该中间件并检索 storeId
。
我的 localhost 中有一个带有 ts
键的 cookie:
cookie ts in application dev tools
我有 AJAX 电话。
$.ajax({
type:'POST',
dataType: 'JSON',
url: 'http://www.localhost:8090/product',
data: product,
xhrFields: { withCredentials: true },
crossDomain: true,
async: false,
success: result => {
console.log(result)
$('#FormLoading').remove()
}
})
并且出于某种原因它仍然没有发送令牌但是 在主页仪表板等其他页面中它可以工作。 response
ts
密钥用于 localhost
域,您正在调用 http://www.localhost:8090/product
。通常,如果您的 cookie 的域类似于 API URL 的域,则 cookie
键及其 值 将插入 header 请求自动作为字符串系列。但是这里你的 cookie 的域是 localhost
而 API 的域是 www.localhost
。所以 AJAX 忽略 cookie.You 应该用通配符设置 cookie 域,当在 node js 服务器响应中生成 cookie 时登录请求,或将 API 的基数 URL 更改为 localhost
。顺便说一下,这可能会有所帮助 How do browser cookie domains work?