为了更好地说明我的问题,问题可能是:我可以在来自jsonp请求的响应中设置cookie吗?
我可以从JSONP请求发起会话吗?
更详细地说:假设一个JSONP请求是从我的浏览器到myserver.com。 myserver.com是否可以通过JSONP响应来设置cookie,以便稍后当再次向myserver.com发出请求时(直接在doc.host = myserver.com或通过来自任意doc.host的另一个JSONP请求间接)时, cookies会被发送给它?目前浏览器似乎忽略了我使用JSONP响应发送的Cookie。 是我想要的吗?我在这里错过了什么?
编辑:这是我做的,通过加载本地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。自chrome报告以来,这一点已得到证实。 问题是,如果我再次重新执行上述操作,则先前设置的cookie不会被发送回服务器。编辑2:我去了Chrome浏览器(在引擎盖下的页面),我找不到cookie,虽然它被报告(调试控制台的铬)在JSONP响应收到。这意味着服务器发送它,浏览器看到它,然后抛弃它。
我在移动Safari中遇到了这个问题。去偏好设置'接受Cookies'为'总是'解决了它。 – schellsan