首页 > 其他分享 >【前端跨域】CORS跨域问题解决思路

【前端跨域】CORS跨域问题解决思路

时间:2023-06-08 17:34:49浏览次数:41  
标签:Control 跨域 前端 Access header add Allow CORS


目录

一、Nginx跨域配置

二、Spring项目跨域配置

参考资料


一、Nginx跨域配置

在 Nginx 中配置跨域请求,主要可以通过设置 HTTP 响应头部的方式进行。以下是具体实现步骤:

  1. 在 Nginx 的配置文件中找到对应 location 配置块,例如:
server {

    listen 80;

    server_name example.com;

    location /api {

        proxy_pass http://127.0.0.1:8080;

    }

}
  1. 在 location 配置块中添加如下 HTTP 响应头部设置:
location /api {

    add_header 'Access-Control-Allow-Origin' '*';

    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';

    add_header 'Access-Control-Allow-Credentials' 'true';

    add_header 'Access-Control-Max-Age' 1728000;

    if ($request_method = 'OPTIONS') {

        add_header 'Access-Control-Allow-Origin' '*';

        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';

        add_header 'Access-Control-Allow-Credentials' 'true';

        add_header 'Access-Control-Max-Age' 1728000;

        add_header 'Content-Type' 'text/plain charset=UTF-8';

        add_header 'Content-Length' 0;

        return 204;

    }

    proxy_pass http://127.0.0.1:8080;

}

其中:

  • add_header 'Access-Control-Allow-Origin' '*' 表示允许所有的跨域请求。
  • add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' 表示允许的请求方法。
  • add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' 表示允许的请求头部信息。
  • add_header 'Access-Control-Allow-Credentials' 'true' 表示允许发送 cookies 到服务器端。
  • add_header 'Access-Control-Max-Age' 1728000 表示跨域预检请求的有效时间。
  • if ($request_method = 'OPTIONS') {...} 表示处理 preflight 请求。

通过以上配置,就可以在 Nginx 中配置跨域请求,保证前端页面可以跨域访问服务端资源。

二、Spring项目跨域配置

参考资料

springMVC 跨域问题解决方案_java springmvc 解决跨域_布衣枭枭的博客


标签:Control,跨域,前端,Access,header,add,Allow,CORS
From: https://blog.51cto.com/u_11579569/6441689

相关文章

  • 阿里开源前端框架
    https://ant.design/ http://library.ant.design/ https://motion.ant.design/ https://antv.alipay.com/zh-cn/index.html  数据可视化 https://eggjs.org/zh-cn/intro/quickstart.html......
  • 前端进化笔记-JavaScript(三)
    人类在白色的底色上描绘图画,地球在黑色的底色上创造生命。变量、作用域与内存JavaScript的变量可以说是独树一帜。只需要一个(或两个等)关键字(const,let)就可以创建变量,创建时不考虑变量的类型,这是其他语言少有的强大功能。当然强大的功能总是伴随着问题。值原始值:Undefined,Null......
  • 风尚云网微谈前端行业六大说
    风尚云网微谈前端行业,希望对新手小白有些帮助...个人见解,仅供参考,取长补短目录一:关于前端/大前端是什么?二:前端开发工程师是干什么的?三:2023年前端开发还值不值得学习?四:前端工程师需要会什么?五:关于最重要的前端开发薪资问题六:前端开发适合发展的城市一:关于前端/大前端是什......
  • [转]前端-WebAPI接口-FormData对象的使用(模拟表单用于发送数据及上传文件)
    一、概述FormData对象的使用:用一些键值对来模拟一系列表单控件:即把form中所有的元素的name与value组成一个queryString。异步上传二进制文件。二、使用创建一个空对象实例。 javascript复制代码varmyform=newFormData();使用已有的表单来初始化 ht......
  • 在前端生成H5二维码海报
    海报图片生成前后端都能实现,个人喜欢在前端生成,主要是前端可以用html+css去实现海报样式,便于调试,对于熟悉前端代码的小伙伴来说再好不过。以下是在vue项目中的实现,非vue前端同理。思路及步骤:1.用html实现海报效果制作海报模板图,用js二维码库生成二维码,用CSS的绝对定位实现二......
  • 【前端方案】-表格排序列LRU缓存方案(二)
    一.目标个人账号的设置记忆功能-避免用户每次登录之后重新对表单字段做展示设置二、存储方案轻量方案结合localstorage低容量存储(5M),根据LRU只存最近访问的20至30张表格列配置数据全量方案大内存G级别,使用indexedDb进行存储,有多少表格操作列数据就存多少,结合第三方库dexie.......
  • 跨域问题在nginx 上做处理
    可以application处理也可以在nginx上处理nginxserver{listen80;server_namelocalhost;location/{add_headerAccess-Control-Allow-Origin'http://localhost:8080'always;add_headerAccess-Control......
  • 前后端分离开发中的跨域问题
    一、什么是跨域问题?跨域(CORS)是指不同域名之间相互访问。是指浏览器不能访问其他网站的脚本,它是由浏览器的同源策略造成的,同源策略是浏览器对于JavaScript所定义的安全限制策略。由于现在在开发中大多数都是前后端分离的项目,所以会导致跨域问题,下面我们先了解跨域再解决跨域问题。......
  • c# iconfont在后端添加前端显示
    publicstringUnicodeToStr(stringunicodeStr){stringoutStr="";if(!string.IsNullOrEmpty(unicodeStr)){string[]strlist=unicodeStr.Replace("&#","").Repl......
  • 深圳前端一年半,投了两个月简历,第一场面试
     背景base深圳,一年半经验,找的初级前端岗位,1-3年,投简历两个月只有两个面试,这是第一个面试一面你对html元素是怎么分类的?一开始我愣了一下?搞这么简单的问题???后面又问面试官你是指的id选择器这些吗,,还是display:block,inline-block这些?不管了,反正我全都讲了一遍,说了下这些八股......