跨域问题解决

1.出现跨域问题

当我们在前端项目中,向后端发送请求的获取课程数据的时候,出现了跨域问题:

  • 已被CORS策略阻止:请求的资源上没有' Access-Control-Allow-Origin'标头(跨域请求失败)


    image.png

2. 什么是跨域

跨域是指通过JS在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,只要协议域名端口有任何一个不同,都被当作是不同的域,浏览器就不允许跨域请求。

  • 几种跨域问题


    image.png

3 解决跨域问题

跨域的允许主要由服务器端控制。服务器端通过在响应的 header 中设置 Access-Control-Allow-Origin 及相关一系列参数,提供跨域访问的允许策略

  • 设置响应头中的参数来允许跨域域请求:
    Access-Control-Allow-Credentials
    Access-Control-Allow-Origin 标识允许跨域的请求有哪些

3.1 在POM文件中引入依赖

<!-- 解决跨域问题所需依赖 -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
</dependency>

3.2. 在web.xml中 配置跨域 filter

<!--配置跨域过滤器-->
<filter>
<filter-name>corsFilter</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>corsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • XMLHttpRequest cannot load http://localhost:3000/. No 'Ac...
    cbw100阅读 24,655评论 12 25
  • 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1、资源跳...
    cc_daily阅读 2,540评论 0 0
  • 跨域 由于开发模式为前后端分离式开发,故而通常情况下,前端和后端可能运行不同的ip或者port下,导致出现跨域问题...
    Cold_Wind阅读 9,664评论 3 7
  • 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,违反了同源策略的约定,这样就产生了跨域问题。 1.如果我们...
    清泉_QingQuan阅读 7,664评论 2 1
  • 在开发前后端完全分离的系统中,服务端代码属于一个工程,前端代码属于另一个工程,前端开发人员在进行接口对接时,会产生...
    FantJ阅读 11,894评论 20 138