关于跨域访问的基本概念可以参考:
跨域访问的相关概念及解决方法

CORS ,Cross-Origin Resource Sharing,跨域资源共享。使用CORS可以实现使用AJAX访问跨域的资源。
CORS作为跨域访问的服务端解决方案,也是开发中最为常用的跨域访问方案。

演示示例

本篇的演示示例类同:
跨域解决方案之—JSONP

演示环境:
两个Tomcat

  1. tomcat9-1 , 端口8080, 项目app1
  2. tomcat9-2, 端口9090,项目app2
    演示目录如下:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVBq2Xrb-1647049516137)(images/screenshot_1646921729959.png)]

app1项目中有文件 cors.html, 内容如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><title>JSONP</title><script  type="text/javascript">function handleClick(){var url = "http://localhost:9090/app2/cors.jsp";var xhr = new XMLHttpRequest();xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {alert( xhr.responseText );}};xhr.open('get', url, true);xhr.send(); }   </script></head><body><button id="btn" onclick="handleClick()">CORS</button></body>
</html>

在该页面中,访问 9090的app2的cors.jsp页面, 该页面的代码如下:

<%response.setHeader("Access-Control-Allow-Origin", "*"); out.print("([{ name:'Oscar999',age:'18'}]);");out.flush();
%>

cors.jsp 中设置跨域访问的是 response.setHeader("Access-Control-Allow-Origin", "*");, 也就是所有域都可以跨域访问。跨域可以设置其他信息头, 详细可以参考跨域访问的相关概念及解决方法。

演示环境和代码

完整的环境和代码可以到如下地址下载:
https://download.csdn.net/download/oscar999/84505043

使用说明:

  1. 下载后解压目录
  2. 进入 tomcat9-1\bin, 点击startup.bat 启动8080端口的服务
  3. 进入 tomcat9-2\bin, 点击startup.bat 启动9090端口的服务
  4. 禁止跨域访问演示:http://localhost:8080/app1/noaccess.html
  5. JSONP实现跨域访问演示:http://localhost:8080/app1/jsonp.html
  6. CORS实现跨域访问演示: http://localhost:8080/app1/cors.html

跨域解决方案CROS最简单演示——JSP演示示例相关推荐

  1. [乐意黎转载]Window.postMessage() HTML5 跨域解决方案

    Hey,everybody~ 又是倒霉的跨域 T T , 有多少人死在了"说出你知道的跨域解决方案,越多越好?"这个面试问题上. 今天和大家说说,HTML5提供的一个跨域解决方案, ...

  2. Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持

    Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持 1.设置 document.domain为一致  推荐1 2.Apache 反向代理 推荐1 3. ...

  3. html 跨域_常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  4. WEB 前端跨域解决方案

    跨域定义 广义的定义:跨域是指一个域下的文档或脚本试图去请求另一个域下的资源. 1.) 资源跳转: 链接.重定向.表单提交 2.) 资源嵌入: <link>.<script>. ...

  5. 【安全系列之跨域】跨域解决方案

    一.为什么会出现跨域问题 出于浏览器的同源策略限制.同源策略是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS.CS ...

  6. 你可能不知道的跨域解决方案

    出于浏览器的同源策略,我们经常会遇到浏览器跨域的问题. 简单的说跨域基本解决方案是: GET请求用JSONP 其他请求用同源iframe做代理 JSONP的介绍很多,这里就不多说了. 而同源ifram ...

  7. js最全的十种跨域解决方案

    在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问 ...

  8. 常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  9. WebAPI——浏览器跨域解决方案

    一.跨域问题的由来 同源策略:出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容. 正是由于这个原因,我们不同项目之间的调用就会被浏览器阻 ...

最新文章

  1. 分表分库之一:分布式数据库的常见用法
  2. Excel多因素不重复方差分析
  3. jquery指定节点设css,jquery 获取和设置节点属性 css样式
  4. mysql周德伟课后答案_mysql数据库搜索
  5. java爬取豆瓣电影TOP250排行
  6. 深度学习之LSTM完全图解
  7. Windows10 快捷方式失效
  8. 计算机一级考试有填空题嘛,计算机一级考试填空题
  9. 当导入导出为同一个接口时,会产生什么样的“化学反应”?
  10. ffmpeg合并多个MP4视频
  11. 在scrapy中params无处安放???
  12. 强大的word查找替换功能
  13. c语言 上传图片至服务器,JSP+Servlet实现文件上传到服务器功能
  14. 小型气象站概述、功能特点、参数、安装需求
  15. k8s: pod has unbound PersistentVolumeClaims问题解决
  16. Windows XP电源管理及注册表分析
  17. SQL求总和的百分比
  18. python repair修复功能_NI 技术支持|我的插件显示需要修复(REPAIR)了该怎么办?...
  19. java硬币兑换_java程序题:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法...
  20. 设计matlab函数计算dtft,数字信号处理实验一

热门文章

  1. Java语法基础,课后实践
  2. Android WebView JavaScript交互
  3. 多线程学习笔记4 互斥体
  4. [转]jQuery-1.3.2学习笔记
  5. MySQL5.5安装到最后一步卡住的解决办法(即使删除了隐藏文件内C:\ProgramData的MySQL以后还是没解决问题)
  6. ps画布扩展颜色灰色不可用的原因和解决方法
  7. 关于win10连接不上ftp的解决方案
  8. Angel深度学习在广告推荐训练优化中的实践.pdf(附下载链接)​
  9. 浅谈 多任务学习 在推荐系统中的应用
  10. 【论文复现】使用CNN进行文本分类