相关疑难解决方法(0)

Cookie未在chrome或firefox中的localhost上设置

我正在使用Jersey服务器,它以下列方式返回cookie:

return Response.ok()
    .cookie(
        new NewCookie(
            "userAccessToken", userTokenDTO.getToken(), "/", "", 
            "what is this", 3600, false
        )
    ).build();
Run Code Online (Sandbox Code Playgroud)

当我调用返回cookie的方法时,我在chrome中得到以下结果: 请求和响应标头

我甚至可以看到chrome识别出我的cookie: Cookie得到认可

但由于某种原因,它没有在cookie选项卡中设置:

没有显示cookie

我已经尝试将域都设置为false,null,"",在hosts文件中重命名127.0.0.1创建一个条目.

return Response.ok()
    .cookie(
            new NewCookie(
                    "userAccessToken", userTokenDTO.getToken(), "/", "127.0.0.1",
                    "what is this", 3600, false)
    ).build();
Run Code Online (Sandbox Code Playgroud)

适用于IE 11,但仍然不是Chrome或Firefox ......

我已经多次尝试为127.0.0.1插入另一个主机名.在此示例中,它是text.myexample.com.它仍然无法在除IE11之外的任何其他浏览器中运行.

return Response.ok()
    .cookie(
            new NewCookie(
                    "userAccessToken", userTokenDTO.getToken(), "/", "test.myexample.com",
                    "what", 7200, false)
    ).build();
Run Code Online (Sandbox Code Playgroud)

我尝试在Google Chrome控制台中执行以下操作:

document.cookie = "userAccessToken=72bebbe0-44fd-45ce-a6e1-accb72201eff;Version=1;Comment=what;Domain=test.myexample.com;Path=/;Max-Age=7200"
Run Code Online (Sandbox Code Playgroud)

哪个是Chrome中服务器返回的标头中的Cookie.这很好.我几乎不知道这里发生了什么.

java cookies google-chrome jersey

11
推荐指数
1
解决办法
8076
查看次数

Cookie出现在响应标头中,但未在chrome/firefox中设置

我在我的localhost域上设置了一个cookie,并按照SO中最高排名的问题指出了所有内容:set-cookie:带有显式域名的localhost上的cookies以及为什么asp.net不会在localhost中创建cookie?

tkn=2DH1hWlhOrl1Ty5qsYYyHKXZlfTOac; 
Domain=.localyyyyyyyy.com; 
Expires=mar., 21 avr. 2015 20:36:48 WEST; 
Path=/; 
HttpOnly
Run Code Online (Sandbox Code Playgroud)

我绑定了/ etc/hosts 127.0.0.1 to dev.localyyyyyyyy.com

我可以看到cookie的响应标题,但我看不到它存储在Chrome或Firefox中. 响应报头

并在cookie选项卡上,没有: 在此输入图像描述

你们有没有想过这个?

谢谢,

cookies mozilla google-chrome

10
推荐指数
0
解决办法
1720
查看次数

如何判断为什么没有发送cookie?

我正在使用chrome,我想知道是否有扩展或方法来说明为什么没有发送cookie.

我有一个请求,我正在做http://dev/login,它正在返回,

Set-Cookie:DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT
Run Code Online (Sandbox Code Playgroud)

但是,在帖子上http://dev/Base/User/home/我没有发送DevIdcookie.如果有人碰巧知道,我很想知道为什么没有发送cookie.但是,此外,我很想知道如何告诉为什么以及如何在将来更好地调试此问题.

以下是Chrome的开发工具中捕获的一些请求

所以这是我的回复/login(注意Set-Cookie标题),

HTTP/1.1 200 OK
Date: Tue, 16 Jun 2015 19:57:43 GMT
Server: Apache
Pragma: no-cache
Cache-control: no-cache, max-age=0
Set-Cookie: DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT
Cache-Control: max-age=0
Expires: Tue, 16 Jun 2015 19:57:43 GMT
Keep-Alive: timeout=10, max=10
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/json; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

这是我的帖子/Base/User/home/1(注意没有cookie),

POST /Base/User/home/ HTTP/1.1
Host: dev
Connection: keep-alive
Content-Length: 0
Origin: http://dev
User-Agent: Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

cookies google-chrome http developer-tools google-chrome-devtools

9
推荐指数
3
解决办法
7996
查看次数

8
推荐指数
1
解决办法
4027
查看次数

在剧作家测试中添加cookie

无论我做什么,我都会收到错误(X.cookies 不是函数或 X.addCookies 不是函数)。我尝试使用上下文,page.context。browserContext 等,它总是以相同的方式结束(好吧,page.context 以及 browserContext 未定义,所以错误是不同的)。

语境:

  • 剧作家版本:1.4.2
  • 操作系统:Ubuntu 20.4
  • Node.js 版本:10.15.1
  • 浏览器:铬

代码:

beforeEach(async function fn() {
this.timeout(20000);
browser = await chromium.launch({ headless: false });

const context = await browser.newContext();
page = await context.newPage();

await page
  .goto("http://localhost:4200/#/login", {
    waitUntil: "networkidle0",
  })
  .catch(() => {});
Run Code Online (Sandbox Code Playgroud)

});

并在测试中:

      // await context.addCookies([
  //   { name: "csrftoken", value: cookieToken, path: "/" },
  //   { name: "sessionid", value: cookieSession, path: "/" },
  // ]);
  // await context.cookies();
Run Code Online (Sandbox Code Playgroud)

javascript e2e-testing puppeteer playwright

8
推荐指数
1
解决办法
4万
查看次数

localhost cookie未设置

我正在尝试在我的应用程序中设置一个cookie.

这是设置cookie的代码:

public HttpResponseMessage LogIn(UserLoginVM user)
{
    // Do login stuff

    var cookie = new CookieHeaderValue("STUPID-COOKIE", "12345");
    cookie.Domain = Request.RequestUri.Host;
    cookie.Path = "/";
    cookie.HttpOnly = true;

    // Get user's profile

    HttpResponseMessage res = Request.CreateResponse<UserProfileVM>(HttpStatusCode.OK, profile);
    res.Headers.AddCookies(new CookieHeaderValue[] { cookie });

    return res;
}
Run Code Online (Sandbox Code Playgroud)

服务器的响应如下:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
Set-Cookie: STUPID-COOKIE=12345; domain=localhost; path=/; httponly
Access-Control-Allow-Origin: *
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcUFJPSkVDVFNcU2Ftc2tpcC5TZXJ2aWNlV2ViTmV3XFNhbXNraXAuQXV0aEFQSVxTYW1za2lwLkF1dGhBUElcbG9naW4=?=
X-Powered-By: ASP.NET
Date: Wed, 18 Feb 2015 11:58:07 GMT
Content-Length: 8019 …
Run Code Online (Sandbox Code Playgroud)

cookies asp.net-mvc localhost

7
推荐指数
1
解决办法
4324
查看次数

使用API​​与另一个来源(CORS)重用应用程序

我有一个react应用程序,它使用在另一个域上运行的java ee后端休息服务器.我启用了CORS:

Access-Control-Allow-Origin : http://localhost:3000
Access-Control-Allow-Headers : origin, content-type, accept, authorization
Access-Control-Allow-Credentials : true
Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
Access-Control-Max-Age : 1209600
Run Code Online (Sandbox Code Playgroud)

我正在使用像这样的fetch反应:

export function get(path, headers) {
    return fetch(apiUrl + path, {
        "metod" : "GET",
        "headers" : headers,
        "credentials" : "include"
    })
}
Run Code Online (Sandbox Code Playgroud)

我的反应应用正在运行http://localhost:3000.当我登录时,服务器返回Set-Cookie,但cookie不包含在对服务器的任何进一步请求中,除非我尝试再次登录.然后它包含在该特定登录请求中.

有什么建议?

cookies fetch cors reactjs

7
推荐指数
2
解决办法
2万
查看次数

在同一域上的站点之间共享cookie - 无头/解耦CMS

我挑战的背景

我正在建立一个无头的WordPress/WooCommerce商店.

如果您不熟悉无头CMS的概念,我会通过WordPress/WooCommerce REST API提取商店的内容(产品及其图像,文本).通过这种方式,我可以为我的客户提供CMS仪表板,同时我可以使用现代语言/库进行开发 - 就我而言 - React!

如果可能的话,我想在WordPress/WooCommerce/PHP中保存结账.根据项目,我应用此代码/样板文件,我怀疑我必须切断和更改支付网关,并且在PHP/WordPress中使这种安全和PCI兼容性要容易得多 - 这里有很多插件.

这意味着整个商店/前端将存在于React中,但购物车除外,当用户希望完成订单时,用户将被重定向到CMS前端(WordPress,PHP).

挑战

这使得管理会话的cookie变得非常不直观和非正统.当用户从商店(React站点)重定向到结帐(WooCommerce/PHP站点)时,购物车会话必须在两个站点之间保持不变.

此外,对WooCommerce的请求通过我的React客户端所在的Node/Express服务器进行路由.我这样做是因为我想让WordPress地址变得模糊,所以我可以应用GraphQL来清理我的请求和响应.这个问题是在这个过程中,cookie丢失了,因为我的客户端和我的CMS正在通过中间人(我的节点服务器)进行通信 - 我需要额外的逻辑来手动管理我的cookie.

解决方案建筑学的粗略草图

代码

当我尝试从一个动作创建者(我使用Redux进行状态管理)向购物车添加内容时,我点击了我的Node/Express服务器上的api对应端点:

export const addToCart = (productId, quantity) => async (dispatch) => {
  dispatch({type: ADD_TO_CART});
  try {
    // Manually append cookies somewhere here
    const payload = await axios.get(`${ROOT_API}/addtocart?productId=${productId}&quantity=${quantity}`, {
      withCredentials: true
    });
    dispatch(addToSuccess(payload));
  } catch (error) {
    dispatch(addToCartFailure(error));
  }
};
Run Code Online (Sandbox Code Playgroud)

然后在Node/Express服务器上,我向WooCommerce发出请求:

app.get('/api/addtocart', async (req, res) => {
    try {
      // Manually retrieve & append cookies somewhere here
      const productId = parseInt(req.query.productId); …
Run Code Online (Sandbox Code Playgroud)

cookies wordpress express reactjs axios

7
推荐指数
1
解决办法
362
查看次数

PHP会话无法正常工作

我正在使用wamp2.0 - PHP 5.3,apache 2.2.11,但我的会话不存储数据.

我有一个页面接受一个参数,我想在会话中存储(简化版本),所以当我来

http://www.example.com/home.php?sessid=db_session_id
Run Code Online (Sandbox Code Playgroud)

该脚本如下所示:

session_start();

$sessid = @$_GET['sessid'];
if ($sessid) {
  $_SESSION['sessid'] = $sessid;
}
var_dump($_SESSION);
Run Code Online (Sandbox Code Playgroud)

和输出:

array(1) { [0]=> string(13) "db_session_id" } 
Run Code Online (Sandbox Code Playgroud)

这很好,但是当我去链接(没有sessid参数)时,$_SESSION数组是空的.我的事件试图$_SESSION['sessid'] = $sessid;在没有参数的情况下进入页面之前评论该行,但它仍然无法正常工作.

我检查了session_id()输出,会话ID保持不变.

phpinfo()的会话设置

Session Support enabled
Registered save handlers    files user
Registered serializer handlers  php php_binary wddx

Directive   Local Value Master Value
session.auto_start  Off Off
session.bug_compat_42   On  On
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly …
Run Code Online (Sandbox Code Playgroud)

php iframe session wamp

6
推荐指数
1
解决办法
4万
查看次数

在本地开发服务器上运行时,预付示例不起作用

TL; DR:是否可以使用Prebid.js v1.6.0和本地运行的Web服务器测试Prebid标头出价?

我创建了一个库,用于将Prebid标题出价集成到使用React构建的Web应用程序中.它使用Prebid 0.34.6工作正常,我在生产中成功使用它.

我现在正在迁移我的库以使用最新版本的Prebid,1.6.0.我仔细地遵循了迁移指南并实施了那里概述的所有变更.

为了测试我的代码,我设置了一个在本地开发服务器上运行的演示应用程序.

在应用程序的调试输出中,我可以看到收到的出价(日志说INFO: Bids Received for Auction with id: aa5d34f4-3eb7-4cb0-a756-6f7cc4a18568).

但是,广告位中不会显示任何广告素材.我的bidBackHandler回调函数接收一个空对象作为参数.当我pbjs.getAdserverTargeting()在浏览器的开发者控制台上调用时,我也得到一个空对象.

Prebid示例页面上,显示了一个基本的Prebid.js示例,用于将Prebid集成到网页中,以及JSFiddle.

我在演示应用程序中使用与小提琴中完全相同的单位和GPT配置,但无济于事 - 广告位中没有广告素材,只有"自家广告"后备广告,对出价退款处理程序的空回复,空广告服务器定位.

然后我发现如果我将基本Prebid.js示例中的代码复制到我本地开发服务器上的HTML页面,它也会以同样的方式失败 - 广告位中没有广告素材,只有"自家广告"回退,空回复到出价退款处理程序,空广告服务器定位.

然后我用我的演示创建了一个沙箱(→ https://codesandbox.io/s/k5w8mr9o23),在那里,我得到了所需的结果,显示了演示创意.

似乎使用Prebid 1.x,在localhost上运行时无法填充广告位.

谁能证实这一点?有没有办法让这项工作?

javascript ads double-click-advertising prebid.js

6
推荐指数
1
解决办法
570
查看次数

为什么 Chrome 不能设置 cookie

我的服务器有响应。响应头包含有效的 Set-Cookie。Chrome 响应/Cookies 说我有 1 个 cookie,好的。但是... cookie 没有设置到 DevTools/Application/Cookies

/*
 My frontend on Vue
 I renamed 127.0.0.1 to www.example.com
 So running on www.example.com:80 or just www.example.com
*/
let response = await axios({
               method: 'post',
               url: 'http://127.0.0.1:3000/api/login', // my Node server on 3000 port   
               data: {
                   email : login,
                   password: password,
               },
            })
Run Code Online (Sandbox Code Playgroud)
/*
 My backend part on Node.js+Express
 Running on localhost:3000 or 127.0.0.1:3000
 CookieParser() is setted
*/
let options = {
              maxAge: 345600000,
              httpOnly: true,
              path: '/',
            }

res …
Run Code Online (Sandbox Code Playgroud)

node.js express postman vue.js axios

5
推荐指数
1
解决办法
1万
查看次数

Chrome 扩展程序不发送 SameSite=Lax cookie

我在通过弹出脚本中的 chrome 扩展程序处理 cookie 时遇到了一些麻烦。

popup.js 内容:

document.addEventListener('DOMContentLoaded', () => {
    function cookieinfo() {
        chrome.cookies.getAll({url: 'http://localhost:8080'}, function(cookie) {
            console.log('Found cookie: ', cookie)
            if (cookie == null)
                return;

            fetch('http://localhost:8080', {credentials: 'include'}).then((response) => {
                // do some stuff
                return response;
            });
        });
    }
    window.onload=cookieinfo;
}, false);
Run Code Online (Sandbox Code Playgroud)

我执行的步骤:

  1. 在本地主机上登录我的应用程序(所以我得到了 cookie)
  2. 打开弹窗(所以 popup.js 被执行)
  3. 我在控制台日志中看到 chrome 找到了必要的 cookie
  4. 服务器说传入请求有空 cookie
  5. 我刷新本地主机应用程序的页面
  6. 我现在登出

也许有人知道我做错了什么?

编辑:

看来原因是我的cookie有参数HttpOnly=trueSameSite=Lax相关链接)。我可以在服务器日志中看到另一个 cookie。但是由于这个线程,如果credentials参数设置为include,则所有 cookie 都将被发送,即使是 httpOnly cookie。由于这个答案,我也尝试将它发送到 …

javascript cookies httponly google-chrome-extension samesite

2
推荐指数
1
解决办法
1988
查看次数