如何解决Access-Control-Allow-Origin跨域问题

前提环境:在A服务器,调用B服务器的资源,报错出现找不到请求头Access-Control-Allow-Origin,输入跨域问题, 需要使用配置nginx来处理

例如:A服务器是liunx系统部署了一个java程序,B服务器是本地服务器,A服务器需要请求访问B服务器的资源,可以用nginx代理来请求到B服务器的资源。


文章目录

  • 如何解决Access-Control-Allow-Origin跨域问题
  • 配置nginx.conf文件
  • 一、如何配置你的nginx.conf
  • 二、添加Access-Control-Allow-Methods请求头
  • 总结

配置nginx.conf文件

提示:先下载启动nginx,官网下载链接: nginx

步骤:下载完成后安装运行在A服务器上面,先运行看看有没有问题,这里不细说,然后找到开始配置nginx.conf文件(重点)

代码如下(示例):

 server {listen       9800;server_name  localhost;#后台接口配置location ~ /quartz/ {proxy_pass http://192.168.X.XXX:9830;proxy_read_timeout 360s;proxy_send_timeout 360s;proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;add_header Front-End-Https on;add_header 'Access-Control-Allow-Methods' 'GET,POST';add_header 'Access-Control-Allow-Origin' $http_origin;add_header 'Access-Control-Allow-Credentials' 'true';add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';}}location / {root   html;index  index.html index.htm;}location @router {rewrite ^.*$ /index.html last;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

一、如何配置你的nginx.conf

添加一个server{},这是你的服务,listen参数是你要监听的端口,这个端口可以自定义,server_name localhost,这个一般就是A服务器的域名地址,记住这个地址+端口+/参数/(127.0.0.1:9800/quartz/) 是映射location,也就是请求的地址会被代理成 proxy_pass http://192.168.X.XXX:9830这个地址,A服务器就可以跨服务器请求B服务器的资源;

二、添加Access-Control-Allow-Methods请求头

代码如下(示例):

add_header Front-End-Https on;
add_header 'Access-Control-Allow-Methods' 'GET,POST';
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';

header头字段

含义

取值

Access-Control-Allow-Credentials

响应头表示是否可以将对请求的响应暴露给页面

true/false

Access-Control-Allow-Headers

表示此次请求中可以使用那些header字段

符合请求头规范的字符串

Access-Control-Allow-Methods

表示此次请求中可以使用那些请求方法

GET/POST(多个使用逗号隔开)

Access-Control-Allow-Origin

一种跨域策略,标识的Response header,用来解决资源的跨域权限问题。

标识符

总结

提示:这里对文章进行总结:

以上就是今天要讲的内容,本文仅仅简单介绍了用nginx来解决Access-Control-Allow-Origin跨域问题;

Access-Control-Allow-Origin跨域问题,使用Nginx配置来解决相关推荐

  1. vue反向代理解决跨域及部署nginx端口转发解决跨域

    1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...

  2. proxy跨域不生效_配置proxy解决跨域问题

    用一个最简单的方法解决API资源请求跨域问题:http-proxy-middleware http-proxy-middleware不需要自己安装,在安装webpack过程中,会自动依赖安装到你的no ...

  3. HTTP Headers 之 Origin跨域访问一定要加上这个header

    1.跨域访问 概念 HTTP 协议中的 Origin Header 存在于请求中,用于指明当前请求来自于哪个站点. 字段内容 Origin 仅仅包含站点信息,不包含任何路径信息. 语法 Origin: ...

  4. Access-Control-Allow-Origin跨域问题的报错以及解决

    Access-Control-Allow-Origin跨域问题的报错以及解决 这是浏览器控制台报错详情,在前后端分离,前段需要传数据进入后端时报的错 解决方案:配置跨域过滤器 1.先复制以下代码(过滤 ...

  5. ajax请求时拒绝访问,ajax跨域请求js拒绝访问的解决方法

    ajax跨域请求js拒绝访问的解决方法 内容精选 换一换 可能原因kubelet服务没有运行或运行异常.kubelet服务没有运行或运行异常.解决方法可以通过systemctl status kube ...

  6. 为什么会有跨域的问题出现,如何解决跨域问题

    为什么会有跨域的问题出现,如何解决跨域问题 什么是跨域 ​ 定义: 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都 ...

  7. 跨域问题详解——九种解决跨域方法

    跨域是前端再常见不过的问题了,下面主要针对跨域做一次总结,一次理清楚. 一.jsonp解决跨域 jsonp解决跨域问题的原理是:script不受同源策略的影响. //前端代码: <!DOCTYP ...

  8. [html] canvas生成图片有没有跨域问题?如果有如何解决?

    [html] canvas生成图片有没有跨域问题?如果有如何解决? 前端设置 useCORS: true.后台配置允许跨域 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很 ...

  9. 跨域异常与nginx的underscores_in_headers on

    跨域异常与nginx的underscores_in_headers on 参考文章: (1)跨域异常与nginx的underscores_in_headers on (2)https://www.cn ...

  10. 什么是跨域(CORS)?怎么解决跨域(CORS)?

    什么是跨域(CORS)? 跨域是指浏览器不能执行其他网站上的脚本,它是由浏览器的同源策略造成的,是浏览器对 JS 的安全限制.是浏览器从一个域名网页请求另一个域名资源时,出现端口.域名.协议任一不同, ...

最新文章

  1. c 语言实现汇文, 瞎写
  2. docker 端口映射 及外部无法访问问题:开启IP转发从而解决
  3. Exynos4412 文件系统制作(一)—— 文件系统的启动过程分析
  4. 机械系统计算机控制试卷及答案,机械系统设计试题及答案
  5. mysql 事务sqlserver_SQLServer数据库:事务与隔离级别实例讲解
  6. DataView数据视图的使用 winform
  7. es6 Class 不存在变量提升
  8. javascript基础与编写习惯
  9. bzoj 3190 赛车 半平面交
  10. MySQL服务器意外关机-无法启动多实例
  11. Pylot——跨平台的网站压力测试工具
  12. ARouter 源码历险记 (四)
  13. Java Web项目漏洞修复(绿盟检测)
  14. 各式标签二维码明确采用QR码或DM码,其两种不同码制的区别表现
  15. 【RT-Thread 作品秀】空气质量监测系统
  16. Rancher搭建Longhorn分布式存储
  17. 基于C++实现(WinForm)家谱管理系统【100010033】
  18. 二分法的算法及应用场景(只更新了一种)
  19. 头条限流是什么原因_今日头条限流吗 头条号限流是什么状态
  20. mplab c30 注册方法

热门文章

  1. 快捷键,总结一些实用高效的快捷键
  2. React子组件给父组件传值
  3. xheditor的使用
  4. ASO|几个ASO优化方案解析(下)
  5. 分析google关键词de工具
  6. 托福、雅思、托业有什么区别?
  7. HTC Vive榜单:盘点一周最受欢迎的VR应用
  8. 误删除数据恢复,试试这3个方法
  9. BT宝塔面板关闭强制绑定手机注册
  10. 超级简单好用的免费CRM客户管理软件,推荐!