允许跨域ajax携带cookie,jsonp请求带cookie

请求 cookie 跨域 允许 携带 ajax jsonp Control Allow Access 编程技术
发布日期 2022-09-06 更新日期 2022-09-06 阅读次数 77 文章字数 1.1k

服务器端配置,例如指定一个filter。

其中:

  • Access-Control-Allow-Origin设置服务器端的允许响应标记
  • Access-Control-Allow-Credentials设置允许跨域携带cookie
  • Access-Control-Allow-Headers 和 methods允许预检(跨域请求是一个复杂请求,会触发options预检)

注:仅第二项,是必须的,必须允许携带跨域cookie,第一项请求来源非必须,因为还可以使用 jsonp 的形式,第三项也不是必须(实测服务端禁止options请求仍可请求成功并成功响应)。

@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// TODO Auto-generated method stub
		HttpServletResponse resp = (HttpServletResponse) response;
		HttpServletRequest rep = (HttpServletRequest) request;
		//允许任何请求来源
		resp.addHeader("Access-Control-Allow-Origin", "*");
		//允许跨域请求携带cookie		
		resp.addHeader("Access-Control-Allow-Credentials", "true");
		// 跨域信息
		resp.addHeader("Access-Control-Allow-Headers", "*");
		resp.addHeader("Access-Control-Allow-Methods", "*");
		chain.doFilter(request, response);
	}

前端请求时,指定跨域携带cookie(默认不会自动携带)

$.ajax({
    url : "*",
    type : "GET",
    xhrFields : {
        withCredentials : true
    },
    success : function(result){
        ....
    }
});

jsonp请求带cookie示例:

  $.ajax({
    url : "https://huaz.52dixiaowo.com/api/ajax.php?module=blog&method=getList",
    type : "GET",
    xhrFields : {
      withCredentials : true
    },
    dataType: "jsonp",
    success : function(result){
    }
  });

请求效果图:

注意事项:新版的chrome,当设置了跨域带 cookie,不再支持 Access-Control-Allow-Origin : * ,必须手动指定域名列表,例如:http://localhost, http://xxx.com


文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-39.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

请求 cookie 跨域 允许 携带 ajax jsonp Control Allow Access

发表评论

相关推荐
朱丰华   |   7个月前   |   php

php判断是否被iframe

221    评论    点赞
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

172    评论    点赞
朱丰华   |   1年前   |   下载 · 请求

idm、浏览器下载发送两次下载请求

137    评论    点赞
朱丰华   |   1年前   |   curl

curl命令忽略ssl证书进行https请求

227    评论    点赞
朱丰华   |   1年前   |   js · export · import

js es6 export,import,export default的用法和区别

125    评论    点赞
朱丰华   |   1年前   |   python · 安装

python安装、重新安装pip

97    评论    点赞
朱丰华   |   1年前   |   文件 · c语言 · include

C语言include语法,h文件和c文件的关系

96    评论    点赞
朱丰华   |   1年前   |   php · 引用 · 变量 · c语言

php扩展内存管理与引用计数

127    评论    点赞
朱丰华   |   1年前   |   zend · php · 字符串 · _string

php扩展zend_string类型与char类型转换

96    评论    点赞
朱丰华   |   1年前   |   php · api · 扩展 · 执行

php sapi生命周期

87    评论    点赞
朱丰华   |   1年前   |   浏览器 · cookie

基于浏览器的自动获取cookie方案

120    评论    点赞
朱丰华   |   1年前   |   分库 · 分表 · 数据库

数据库,分库和分表的目的有什么不同?

128    评论    点赞
朱丰华   |   1年前   |   php · 获取 · PUT · DELETE · 方法 · 请求 · 参数

php获取PUT、DELETE方法请求的参数

223    评论    点赞
朱丰华   |   2年前   |   登录 · 一套 · 用户 · 同时 · 模板 · 页面 · web · 账户 · 共用 · uid

web多账户同时登录共用一套模板

74    评论    点赞
朱丰华   |   2年前   |   响应 · 分割 · php · curl · < · echo · br> · headerSize

php curl分割响应头和响应头

77    评论    点赞
朱丰华   |   2年前   |   get · body · http · 请求

http之get带body请求

70    评论    点赞
朱丰华   |   2年前   |   图标 · 字体 · 快速 · 网页 · 两种 · 用法 · 下载 · 扩展 · 压缩 · 追加

网页字体图标两种快速用法

73    评论    点赞
朱丰华   |   2年前   |   分支 · 当前 · 修改 · git · 携带 · 本地 · 远程

git 携带当前修改到新分支

39    评论    点赞
朱丰华   |   2年前   |   cookie · 无法 · 删除 · 路径 · 这个 · 程序 · 删不掉 · 未知 · 导致 · 编码

这个cookie删不掉!未知路径导致无法编码删除

94    评论    点赞
朱丰华   |   2年前   |   cookie · Cookie · 路径 · 无法 · 如果 · 注销 · &ldquo · 问题 · 设置 · 同名

cookie同名不同路径,导致无法注销问题

86    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞