电脑8080端口每次都被占用,所以考虑换一个端口,就产生了跨域问题!
什么是跨域问题呢?
何谓同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示它们同源。浏览器的同源策略,从一个域上加载的脚本不允许访问另外一个域的文档属性 ,是浏览器上为安全性考虑实施的非常重要的安全策略。
在浏览器中script,img,iframe、link等标签都可以加载[跨域资源],而不受同源限制,
但浏览器会限制脚本中发起的跨域请求。比如,使用 XMLHttpRequest 对象和Fetch发起 HTTP 请求就必须遵守同源策略
Web 应用程序通过 XMLHttpRequest 对象或Fetch能且只能向同域名的资源发起 HTTP 请求,而不能向任何其它域名发起请求。
克服跨域限制的方法有(实践中后两种最常用,所以重点介绍):
(1)通过jsonp跨域
(2)通过修改document.domain来跨子域
(3)使用window.name来进行跨域
(4)使用HTML5中新引进的window.postMessage方法来跨域传送数据
(5)使用代理服务器,使用代理方式跨域更加直接,因为同源限制是浏览器实现的。如果请求不是从浏览器发起的,就不存在跨域问题了。
(6)CORS全称是"跨域资源共享" (Cross-origin resource sharing),CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能
(IE浏览器不能低于IE10),因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)
(1) 请求方法是以下三种方法之一:HEAD GET POST
(2)HTTP的头信息不超出以下几种字段:Accept Accept-Language Content-Language Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
跨域可以使用一些第三方插件,也可在前端后端实现(Nginx),也可在服务器上做(springboot 提供的注解CrossOringin(get和post提交可以实现但是put就不可以!!) 或者使用一个配置类,来全局配置)
几个主要模块:
登录
后端权限---Springboot+Mybatis
前端业务---Vue
跨域 ---Springboot的) ---CORS全称是"跨域资源共享"配置
大体构思