我可以在 jsonp 请求的响应中设置 cookie 吗?
Can I set cookies in a response from a jsonp request?
为了更好地说明我的问题,问题可能是:
我可以从 JSONP 请求启动会话吗?
更详细地说:假设从我的浏览器向 myserver.com 发出 JSONP 请求。myserver.com 可以通过 JSONP 响应设置 cookie 吗,以便以后再次向 myserver.com 发出请求时(直接在 doc.host = myserver.com 时,或者间接通过来自任意 doc.host 的另一个 JSONP 请求),这些 cookie 将被发送到它?目前,浏览器似乎忽略了我使用 JSONP 响应发送的 cookie。我想要的可能吗?我在这里错过了什么?
编辑:这是我所做的请求,通过一个虚拟的本地html加载本地js文件,该html仅获取最新的jquery并加载js文件:
$.ajax({
url: "http://my-remote-server/jsonp/service/test",
dataType: 'jsonp',
data: {some:'data'},
success: function(responseData)
{console.log(responseData);}
});
上述 JSONP 请求的响应是设置 cookie。这是确认的,因为铬报告了它。问题是,如果我只是第二次重新执行上述操作,则先前设置的cookie不会发送回服务器。
编辑2:我去了Chrome cookie浏览器(在引擎盖下页面中),我找不到cookie,尽管它在JSONP响应中被报告(chrome的调试控制台)。这意味着服务器发送它,浏览器看到它,然后将其丢弃。
我找到了解决方案,这里有一些信息可能对处理此问题的任何人来说都很有趣:
根据维基百科的定义:
第三方 Cookie 是使用与地址栏上显示的域不同的域设置的 Cookie
如果我没记错的话,这使得99.99%的JSONP设置cookie,第三方cookie。就我而言,地址栏上显示的地址是一个 file://,这使我的cookie成为第三方cookie。
一旦我启用了第三方cookie,它就可以工作了。
作为旁注,Chrome 默认不支持 file://页面上的 cookie,并且 doean 不会警告或通知这一点。它造成了一些头痛。有关详细信息,请参阅此处和此处。
是的。动态图像请求和 CSS 请求等也是如此。如果是XHR请求,你甚至可以读取响应标头(Set-Cookie等)。
现在如何忽略 Cookie?你怎么知道?
- 在jquery中为显示/隐藏设置cookie
- 如何为后台更改程序代码设置cookie
- 如何使用单选按钮设置cookie值
- PhantomJS(vs nightwatch.js)设置cookie错误
- 未使用Javascript在IE中设置Cookie
- 如何使用Ajax/jQuery设置cookie
- 如何在Internet Explorer中使用javascript设置cookie
- 在Node.js中设置cookie值
- Javascript-设置cookie并拉入ID
- 为什么新js Fetch标准禁止响应头名称为'设置Cookie 1/2'
- 设置文档位置href会阻止设置cookie
- .bind()无法设置cookie
- 单击链接时设置cookie
- 我无法在歌剧和互联网浏览器中设置cookie
- 在相对于用户当前 URL 路径的不同路径中设置 Cookie
- 如何在 Javascript 中设置 cookie 的到期日期
- 使用Javascript设置cookie
- 无法使用jquery设置cookie
- Javascript代码检查:尝试设置cookie时出现令牌错误
- 仅当onclick和隐藏消息时设置cookie