【问题标题】:Why is PHP Cookie not set in cross-origin request by the chrome extension?为什么 chrome 扩展没有在跨域请求中设置 PHP Cookie?
【发布时间】:2019-09-25 06:09:39
【问题描述】:

我有一个 chrome 扩展,它使用 XMLHttpRequest 连接到我的主机服务器。当我在 popup.js 中使用 XMLHttpRequest 设置 PHP cookie 时,它​​仅在下一个 XMLHttpRequest 的 popup.js 中可见。但是,当扩展程序在某个 Internet 页面上运行时,background.js 再次向我的主机服务器发出 XMLHttpRequest,但是 cookie 不可见。如何使 PHP cookie 对该服务器的所有请求可见?

PHP 设置 cookie 时:

setcookie("name","john", time() + 3600*24*1000, "/");

【问题讨论】:

    标签: javascript php cookies google-chrome-extension


    【解决方案1】:

    背景、内容和弹出窗口是独立的,不共享状态,包括 cookie。但是你可以在他们之间交流https://developer.chrome.com/extensions/messaging

    因此,如果您想在弹出窗口中初始化您的请求,那么您必须将 cookie 传递到您的后台,如果您想在那里使用它。

    【讨论】:

    • 我使用服务器的方式在两者之间进行通信。我不需要消息。我设法解决了问题你可以检查它我添加了一个答案。
    【解决方案2】:

    我设法解决了这个问题。 Cookie 无法识别主机域。我再次按照PHP manual 的说明进行操作,然后将设置 cookie 的方式更改为:

    setcookie($cookie_name,$cookie_value, time() + 3600*24, "/","mydomain.com", 1);
    

    这次我使用了变量 $cookie_name 和 $cookie_value 但这对解决方案没有影响。

    【讨论】:

      猜你喜欢
      • 2012-04-22
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2014-03-04
      • 2017-10-06
      • 2016-01-21
      • 2015-12-21
      • 2013-08-26
      相关资源
      最近更新 更多