在托管js的域中加载远程js时设置cookie

时间:2016-11-08 11:23:03

标签: javascript cookies cross-domain

以下是我看的情景:

  1. 我正在远程将js文件加载到网站hello.com
  2. js是从jsfoo.com加载的。
  3. 我想在访问hello.com的用户时在用户浏览器中为域jsfoo.com设置cookie?
  4. 是否可以从加载的js文件中获取内容,或者在加载js时是否必须编写服务器端逻辑?

    目标是当用户稍后访问hello.com时重新定位访问jsfoo.com的用户。

    根据以下评论进行更新: 是否可以动态加载js?例如,如果我们通过动态URL加载js,如jsfoo.com/getjs.php?js=sample.js。代码是否可以通过php代码设置和获取jsfoo.com的cookie?

1 个答案:

答案 0 :(得分:2)

JS代码在您的域下执行,因此您无法在客户端设置该cookie。只有从其他域加载的脚本资源通过HTTP响应头为该域设置cookie时,才可以执行此操作。

您将无法在hello.com中访问jsfoo.com的cookie。如果您需要现有值,那么jsfoo上的脚本需要在对其域发出请求时读取它,并以JS可以读取它的方式返回值(fe将其输出为JS变量。)