cookie httponly ajax,为什么jquery的.ajax()方法没有发送我的会话cookie?
通过$.ajax()登录到站点后,我正在尝试向该站点发送第二个$.ajax()请求 - 但是当我检查使用FireBug发送的标头时,请求中不包含会话cookie 。
我究竟做错了什么?
#1楼
我遇到了同样的问题并做了一些检查我的脚本只是没有得到sessionid cookie。
我通过查看浏览器中的sessionid cookie值得出结论,我的框架(Django)默认使用HttpOnly传递sessionid cookie。 这意味着脚本无法访问sessionid值,因此不会将其与请求一起传递。 当很多东西使用需要访问限制的Ajax时,HttpOnly会成为默认值,这有点荒谬。
为了解决这个问题,我更改了一个设置(SESSION_COOKIE_HTTPONLY = False),但在其他情况下,它可能是cookie路径上的“HttpOnly”标志
#2楼
运用
xhrFields: { withCredentials:true }
作为我的jQuery ajax调用的一部分只是解决方案的一部分。 我还需要在我的资源的OPTIONS响应中返回标头:
Access-Control-Allow-Origin : http://www.wombling.com
Access-Control-Allow-Credentials : true
重要的是,OPTIONS调用的响应头中只有一个允许的“origin”而不是 “*”。 我通过从请求中读取原点并将其填充回响应来实现这一点 - 可能绕过限制的原始原因,但在我的用例中,安全性并不是最重要的。
#3楼
对这个问题已经有了很多好的回答,但是我认为澄清你希望发送会话cookie的情况可能会有所帮助,因为cookie域匹配,但是由于AJAX请求是被制作到不同的子域。 在这种情况下,我有一个分配给* .mydomain.com来域中的饼干,而我希望它被包含在一个AJAX请求different.mydomain.com”。默认情况下,该cookie不会发送。您不需要在会话cookie上禁用HTTPONLY来解决此问题。您只需要执行wombling建议( https://stackoverflow.com/a/23660618/545223 )并执行以下操作。
1)将以下内容添加到您的ajax请求中。
xhrFields: { withCredentials:true }
2)将以下内容添加到响应标头中,以获取不同子域中的资源。
Access-Control-Allow-Origin : http://original.mydomain.com
Access-Control-Allow-Credentials : true
#4楼
也许不是100%回答这个问题,但我偶然发现了这个线程,希望在ajax-从innovastudio编辑器的assetmanager发布文件上载时解决会话问题。 最终解决方案很简单:他们有一个flash-uploader。 禁用(设置
var flashUpload = false;
在asset.php)并且灯开始再次闪烁。
由于这些问题很难调试,我发现在上传处理程序中放置如下内容会让你(好吧,在这种情况下我)在正确的轨道上:
$sn=session_name();
error_log("session_name: $sn ");
if(isset($_GET[$sn])) error_log("session as GET param");
if(isset($_POST[$sn])) error_log("session as POST param");
if(isset($_COOKIE[$sn])) error_log("session as Cookie");
if(isset($PHPSESSID)) error_log("session as Global");
深入了解日志,我很快发现了丢失的会话,没有发送cookie。
#5楼
把它放在你的init函数中:
$.ajaxSetup({
xhrFields: {
withCredentials: true
}
});
它会工作。
cookie httponly ajax,为什么jquery的.ajax()方法没有发送我的会话cookie?相关推荐
- ajax传cookie,为什么jquery的.ajax()方法没有发送我的会话cookie?
我在跨域方案中运行. 在登录期间,远程服务器返回Set-Cookie标头以及设置为true的Important note: when responding to a credentialed requ ...
- jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)
jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...
- JS原生Ajax和jQuery的Ajax与代码示例
JS原生Ajax和jQuery的Ajax [学习目标] 1,了解JS原生Ajax原理 2,掌握json数据格式 掌握json数据格式方式 掌握json的解析方式 3,掌握jQuery中的Ajax封装 ...
- AJAX初识(原生JS版AJAX和Jquery版AJAX)
一.什么是JSON 1.介绍JSON独立于语言,是一种与语言无关的数据格式.JSON指的是JavaScript对象表示法(JavaScript Object Notation)JSON是轻量级的文本数 ...
- 利用jquery操作ajax,利用jquery对ajax操作,详解原理(附代码)
1.jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector ...
- eazyui ajax传值,jquery easyui ajax data属性传值方式
$.ajax({ url:url, type:'post', data:data, dataType:'json', contentType: "application/x-www-form ...
- 原生ajax和Jquery的ajax
目录 原生ajax 传统请求(同步方式)的问题 Ajax优势和作用 Ajax请求与传统请求的区别: ajax原理(方法,属性 ) XMLHttpRequest open send 属性 readySt ...
- jq异步实现ajax,用jQuery的AJax实现异步访问、异步加载
本篇文章实现了用jQuery的AJax实现异步访问和异步加载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. [异步访问] 用一个例子用以说明:点击按钮,将input内用户输入的数据发送给服务端, ...
- jquery ajax parsererror,jQuery为ajax请求返回“ parsererror”
我一直在从jquery收到针对Ajax请求的" parsererror",我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但是我似乎无法弄清楚问题出在哪里. 我 ...
- WEB22_Js原生Ajax和Jquery的Ajax
一.Ajax概述 1.什么是同步,什么是异步 同步现象: 客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态 异步现象: 客户端发送请求到服务器端,无论服务器是否返回响应,客户端 ...
最新文章
- 深入理解虚拟机之虚拟机字节码执行引擎
- 干货 | 100+个NLP数据集大放送,再不愁数据!
- java mock什么意思_java @Mock, @MockBean 与 Mockito.mock( ) 之间的差异
- Java中hashCode()方法以及HashMap()中hash()方法
- 前端-requests-flask对应关系 args
- 37. 重定向 21
- Transformer(李宏毅2022)
- 【WSL2 Win10】解决子系统中nividia-smi出现的Failed to initialize NVML GPU access blocked by the operating systeM
- 基于jsp+mysql+Spring+mybatis java的SSM健身房管理系统
- File-backed Storage
- 小米文件管理连接服务器,小米文件管理器中的远程管理无法连接解决方法
- 2022年国家高新技术企业认定评审最新标准及补贴政策重点,补贴10-50万
- 数据仓库DW、ODS、DM及其区别
- 《职业经理人常犯的11个错误》——余世维
- A. Arena of Greed
- 让你秒懂古人测算地球周长的原理
- 正版solidworks软件多少钱?solidworks正版软件如何购买?
- 2021.11.17洛谷小鱼游泳进阶版——c语言
- 路由器php7安装,小米路由器3G建站折腾笔记4 - 安装opkg和onmp
- 射频了解一丢丢【2】