我有一个页面,该页面向中的URL domain.com
发出JSONP
ajax请求(使用jQuery的.getJSON()
功能)anotherdomain.com
。我以为(阅读:假定),其中的资源anotherdomain.com
可以在服务器端访问该域中设置的任何cookie,但事实并非如此?
专门执行ajax调用以访问特定的cookie,进行一些数据操作并返回以cookie值为键的丰富信息集。原始域无法直接访问cookie值,因此我认为ajax请求将保持我需要的状态。
我会忽略关于Cookie的哪些关键信息?我精疲力尽,我只是看不到它。
谢谢。
更新
我找到了一种方法,但是在我看来,它看起来像JSONP,所以我想知道为什么这种方法有效,而Ajax版本却没有。该请求是否刚刚从浏览器会话断开,从而无法访问Cookie?
<script type="application/x-javascript" src="<?php echo $service_url . '&callback=interests' ?>"></script>
<script type="text/javascript">
function interests( data ) {
$( function() {
var c_behaviors = data.length;
var ids = [];
for( var i = 0; i < c_behaviors; i++ ) {
ids.push( data[i].behavior_id );
}
$('body').append( '<p><label>Returned:</label> ' + ids.join( ', ' ) + '</p>' );
});
}
</script>
相同的原始策略适用于所有ajax请求,因此,如果在ajax调用中访问的域与浏览器中加载的域(document.host)不同,则将不发送与请求url中的域关联的所有cookie
。因此,JSONP方法之所以有效,是因为它在窗口中写出了一个新的脚本标签,其行为就像浏览器可以向外部域发出的任何资源请求一样(因此,将与该域相关联的所有cookie传递给url)。我还通过$.post("http://atdmt.com")
在浏览器中的stackoverflow.com上(仅在我的浏览器中有cookie的其他域中,同时写下答案的情况下)从Chrome控制台简单调用来确认这一点,并且在请求中未发送任何cookie标头。
另一种解决方案来解决保持状态的问题 **anotherdomain.com 将有 **anotherdomain.com
设置一个第一方Cookie(通过不设置cookie的域属性),当一个AJAX / JSON请求进行下列 **anotherdomain.com**
通过javascript访问这些cookie,并使用标准HTTP参数将其推送至请求。
希望我有所帮助。
问题内容: 我需要知道我的用户是否已连接。为此,我想读取在服务器端通过express-session设置的cookie: 我尝试使用react-cookie,但是它不起作用,但是我复制/粘贴了npm react-cookie doc: 这很奇怪,因为可以呈现正确的结果,但是我不知道如何处理: 问题答案: 您可以使用软件包,也可以使用命令进行安装。 文档:https : //github.com/j
由于Session是服务端对象,浏览器要想使用某个服务端的Session对象,就必须在请求消息中包含该Session对象的SessionID。该SessionID一般被放到HTTP请求消息头的Cookie字段中,Cookie名称是JSESSIONID。下面的例子揭示了通过Cookie来跟踪Session的底层技术,读者可以从该例子中充分了解Cookie和Session的关系。 例子 : 通过Coo
问题内容: 因此,这是我的应用当前的设置方式: 1.)登录活动。2.)登录后,可能会触发其他使用PHP脚本的活动,这些活动需要从登录发送的cookie。 我在整个应用程序中使用一个HttpClient来确保使用相同的cookie,但是我的问题是3个cookie中有2个被拒绝了。我不在乎cookie的有效性,但我确实需要接受它们。我尝试设置CookiePolicy,但这也没有用。这就是logcat所
6.6.2.访问LogCat:通过Eclipse的DDMS 在Eclipse中访问LogCat,需要打开LogCat View,如图6.6."Eclipse的LogCat",它一般在DDMS中。单击右上角的DDMS按钮,或者选择菜单Window→Open Perspective→DDMS。 DDMS指Dalvik Debug Monitor Server,它可以将运行于设备上的应用程序与Eclip
问题内容: 我正在尝试从远程Firebase服务器获取文件。 但是,如果我在浏览器中打开,则会加载json文件。即使我加载了json文件。但是通过角度返回未找到。 现在,远程文件具有以下结构: 可以使用$ http.get()而不是$ http.jsonp()来获取上述文件。JSONP无法解析具有上述结构的.json文件。我该如何解决? 问题答案: 您需要在传递给的URL中指定。 从Angular
问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb