首页 > 系统相关 >Nginx 轻松搞定跨域问题 !

Nginx 轻松搞定跨域问题 !

时间:2023-12-28 20:11:38浏览次数:56  
标签:Control 搞定 跨域 预检 Access Nginx 请求

Nginx 轻松搞定跨域问题 !

当你遇到跨域问题,不要立刻就选择复制去尝试,请详细看完这篇文章再处理,我相信它能帮到你。

分析前准备:

前端网站地址:http://localhost:8080

服务端网址:http://localhost:59200

首先保证服务端是没有处理跨域的,其次,先用postman测试服务端接口是正常的

 

当网站8080去访问服务端接口时,就产生了跨域问题,那么如何解决?接下来我把跨域遇到的各种情况都列举出来并通过nginx代理的方式解决(后台也是一样的,只要你理解的原理)。

跨域主要涉及4个响应头:

  • Access-Control-Allow-Origin 用于设置允许跨域请求源地址 (预检请求和正式请求在跨域时候都会验证)
  • Access-Control-Allow-Headers 跨域允许携带的特殊头信息字段 (只在预检请求验证)
  • Access-Control-Allow-Methods 跨域允许的请求方法或者说HTTP动词 (只在预检请求验证)
  • Access-Control-Allow-Credentials 是否允许跨域使用cookies,如果要跨域使用cookies,可以添加上此请求响应头,值设为true(设置或者不设置,都不会影响请求发送,只会影响在跨域时候是否要携带cookies,但是如果设置,预检请求和正式请求都需要设置)。不过不建议跨域使用(项目中用到过,不过不稳定,有些浏览器带不过去),除非必要,因为有很多方案可以代替。

网上很多文章都是告诉你直接Nginx添加这几个响应头信息就能解决跨域,当然大部分情况是能解决,但是我相信还是有很多情况,明明配置上了,也同样会报跨域问题。

什么是预检请求?

当发生跨域条件时候,览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。如下图

开始动手模拟:

Nginx代理端口:22222 ,配置如下

 测试代理是否成功,通过Nginx代理端口2222再次访问接口,可以看到如下图通过代理后接口也是能正常访问

 

 

 

 

 

标签:Control,搞定,跨域,预检,Access,Nginx,请求
From: https://www.cnblogs.com/yayuya/p/17464787.html

相关文章

  • nginx WebUI进行反向代理为什么报错504
    当您在使用NginxWebUI进行反向代理时遇到504错误,这通常是由于Nginx无法在合理的时间内完成请求处理。504错误是Nginx的通用错误,表示"网关超时"。以下是可能导致此问题的原因以及相应的解决方案:1.后端服务器问题原因:后端服务器可能由于各种原因无法及时响应。解决方案:检查后端服务......
  • keycloak~从login-status-iframe页面总结如何跨域传值~续
    keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值,keycloak~对接login-status-iframe页面判断用户状态变更。什么是跨域跨域(Cross-Origin)是指在Web开发中,当一个资源(比如JavaScript、CSS、图片等)来自于不同域名、协......
  • nginx升级演示
    首先查看咱们的nginx版本通过nginx-V下载新的版本,通过这个rz[[email protected]]#tar-zxvfnginx-1.12.0.tar.gz[[email protected]]#cdnginx-1.12.0/配置一下新版本[[email protected]]#./configure--prefix=/usr/local/nginx--us......
  • yum安装的nginx如何安装其他模块
    yum安装nginx没有某一模块,该如何添加第三方模块? 本文将以添加--with-stream模块为例,演示如何去添加新的模块进去。需求:生产有个接口是通过socket通信。nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。实现方法:Centos7.5下yum直接安装的nginx,添加新模......
  • nginx配置正向代理
    #nginxtar包下载地址http://nginx.org/download/先说nginx正向代理配置:server{listen3128;#dnsresolverusedbyforwardproxyingresolver114.114.114.114;#forwardproxyforCONNECTreque......
  • nginx代理 yum 源
    我们在安装centos服务器时,可能会有以下情况:局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通。那么我们再使用yum安装软件时,可以采用以下方式搭建本地yum源使用nginx代理yum源介绍使用方法2。方......
  • 初识php之 nginx + php
    下载php:http://windows.php.net/download/  添加环境变量:配置php.ini文件如果没有php.ini文件则可以复制php.ini-development文件重命名为php.ini文件 找到doc_root修改为项目文件夹注意不要用反斜杠作为路径分隔符  检查extension_dir对应php下面的ext文件......
  • 跨域请求:Go语言下的“通天大道”
    开场白:嘿,各位Go语言的爱好者们,你们是否曾经遇到过这样的困扰:当你的Go应用试图与另一个域的API进行交流时,突然跳出一个“未允许的跨域请求”的警告?别担心,今天,我们将一起在这条“通天大道”上漫步,解决跨域的困扰!知识点一:何为跨域问题?简单来说,当你在浏览器中访问一个网页,该网页试图从......
  • nginx安装
    1、依赖检查(1) 检查gcc环境:执行命令:gcc-v,如果没有安装gcc编译器则会提示“Commandnotfound”如果gcc不存在则安装依赖,执行命令:yuminstallgcc-c++(2) 检查pcre环境:执行命令:rpm-qapcre如果pcre不存在则安装依赖:yuminstall-ypcre pcre-devel(3) 检查zlib环......
  • nginx负载均衡配置
    一、正向代理与反向代理正向代理:客户端Client不直接访问服务端Server,通过代理服务器Proxy访问         正向代理是客户主动使用的代理正向代理的优点:         通过代理的中转,客户端对服务器隐藏了IP,增加了安全性        ......