处理AJAX请求时,Microsoft Edge扩展名发送不同的cookie



我正在将Chrome扩展名转换为边缘。但是,我发现在处理简单页面和扩展程序的AJAX请求时,Edge发送了不同的cookie。

示例:

  1. 访问地址栏中的https://httpbin.org/cookies/set?bar=foo。添加了一个名为" bar"的新饼干,并添加了" foo"值。

  2. 在边缘扩展的任何背景页面中,使用fetch

    创建AJAX请求
    fetch('https://httpbin.org/cookies',{credentials: 'include'});
    

调试控制台显示边缘不发送" bar'cookie。

  1. 在背景页面中再次创建以下AJAX请求

    fetch('https://httpbin.org/cookies/set?bar2=foo2',{credentials: 'include'});
    

    现在已经设置了'bar2'cookie,但仍然没有'bar'cookie。

  2. 再次从地址栏中再次访问https://httpbin.org/cookies。没有" bar2" cookie。

我是在做错事还是它是边缘的错误或功能?

发生这种情况,因为Edge将Cookie商店分配给扩展名和页面上下文。我听说过它是一个功能和错误。如果您需要解决,可以:

  • 在上下文脚本中提出ajax请求,并将结果发送给后台.html;
  • 安装内部人员预览具有较新的边缘(在Edge 39.14936上进行了测试),该预览应正确附加cookie;
  • 如果您只需要一个cookie值,则可以执行浏览器。cookie.getapi调用。不会与httponly cookie一起使用;

相关内容

  • 没有找到相关文章

最新更新