CORS解决跨域问题(及Nginx配置)

文章目录

  • 概念
    • 同源策略
  • 如何跨域
  • 解决办法
    • 简单请求
    • 非简单请求
  • 配置
    • nginx
    • Java里
  • 参考
    • Java 测试
    • 前端测试

概念

同源策略

[same origin policy] 是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。 同源策略是浏览器安全的基石。

什么是源?
源[origin]就是协议、域名和端口号。例如:http://www.baidu.com:80这个URL。

什么是同源?
若地址里面的协议、域名和端口号均相同则属于同源。

同域:域名(父域名和子域名都相同),端口,协议都相同。

跨域:非同域的请求。在同源策略的限制下,非同源的网站之间不能发送 AJAX 请求。

  1. 跨域指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。
  2. 浏览器在执行脚本的时候,都会检查这个脚本属于哪个页面,即检查是否同源,只有同源的脚本才会被执行;而非同源的脚本在请求数据的时候,浏览器会报一个异常,提示拒绝访问。

注意:
跨域不是请求发不出去,而是服务端正常返回结果后被浏览器拦截返回结果。(浏览器为了防止非同源的请求 拿到服务器的返回数据结果)

哪些操作不受同源策略限制?
页面中的链接,重定向以及表单提交是不会受到同源策略限制的;
跨域资源的引入是可以的。但是JS不能读写加载的内容。如嵌入到页面中的