nginx解决跨域问题

nginx解决跨域问题在我们前端开发的过程中 相信大家都遇到过一个让人头疼的问题 那就是跨域问题 跨域解决的方式有很多 这里主要讲的是如何来使用 nginx 来解决我们所遇到的跨域问题首先 在我们开始之前 首先要知道跨域是如何产生的 协议 ip 端口号这三者有任何一个不同 就会产生跨域问题了解了跨域的产生 接着我们就来看看 如何解决它一 下载 nginx 下载地址 http ngin

    在我们前端开发的过程中, 相信大家都遇到过一个让人头疼的问题,那就是跨域问题.

    跨域解决的方式有很多,这里主要讲的是如何来使用 nginx来解决我们所遇到的跨域问题

    首先,在我们开始之前,首先要知道跨域是如何产生的:

           协议

           ip

           端口号

这三者有任何一个不同,就会产生跨域问题

    了解了跨域的产生,接着我们就来看看,如何解决它

一.下载nginx

      下载地址:   http://nginx.org/en/download.html

      如图所示, 选择相应的版本,进行下载

nginx解决跨域问题

下载完成后,选择任意位置进行解压,不需要安装

解压完成后,进入nginx的目录,输入命令 nginx -v 如果能够出现版本,则说明成功,如图:

nginx解决跨域问题

二. nginx反向代理解决跨域问题

    在这里,我们使用ajax来做请求,然后node+express来写后台

    前端代码如下所示:

   

 
   
    
    test 
     
     
     
    
  

后端代码,如下所示:

    使用前,需要安装express   npm install express

let express = require('express') // 创建应用 let app = express() // get请求 app.get('/user/find',(req,res)=>{ res.send('hello') }) // 启动服务,监听端口 app.listen(3000,()=>{ console.log('启动成功...') })

然后开启node服务

这个时候,如果打开页面访问接口,会出现跨域报错,如下图所示:

注意,打开文件的时候一定要在服务中打开,不要使用绝对路径打开

 nginx解决跨域问题

 

接着就是配置nginx文件,解决这个跨域问题

   反向代理的意思就是把前端的地址和后端的地址 使用nginx转换到相同的地址下,如把上面的node服务3000端口 和 网页打开的服务5500端口都转换到 nginx的8000端口下

   具体配置如下:

        打开nignx底下conf文件夹,在conf文件夹中有一个nginx.conf 文件,更改配置如下

server { listen 8000; server_name localhost; # / 表示匹配路径为/的url location / { proxy_pass http://localhost:5500; } # /user 表示访问以/user 开头 的地址 如/username,/user/find等 location /user { proxy_pass http://localhost:3000; } }

注意, listen那里不要使用node服务的3000,之前我是想着直接监听node的服务端口,应该是可以的,可是这样会占用3000接口,导致node服务启动不了

上面代码的意思是,把访问localhost:8000 转换成访问 localhost:5500,而访问localhost:8000/user… 则转换成localhost:3000/user

配置完成之后需要在终端中,使用 nginx -s reload 更新我们的配置

启动nginx的命令是 start nginx

nginx解决跨域问题

 

然后,把前端代码的请求地址修改一下,此时前端访问的就不再是node的服务了,而是要访问nginx, 然后通过nginx做响应的转发

 

 // 给button添加点击事件 $('button').click(function(){ $.ajax({ url:'http://localhost:8000/user/find', success:function(r){ console.log(r) }, error:function(e){ console.log(e) } }) })

在浏览器中访问的也不再是localhost:5500了,而是localhost:8000,原因,已经在上方解释过了

这样就不会出现跨域问题了,这就是反向代理

nginx解决跨域问题

 

希望本篇文章,能够对您有所帮助,欢迎批评指正!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175706.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:37
下一篇 2026年3月26日 下午11:37


相关推荐

  • mysql utf8占几个字节_utf-8的中文是一个字符占几个字节

    mysql utf8占几个字节_utf-8的中文是一个字符占几个字节英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数:1;编码:GB2312字节数:1;编码:GBK字节数:1;编码:GB18030字节数:1;编码:ISO-8859-1字节数:1;编码:UTF-8字节数:4;编码:UTF-16字节数:2;编码:UTF-16BE字节数:2;编码:UTF-16LE中文汉字:字节数:2;编码:GB2312字节数:2;编…

    2022年6月26日
    30
  • JS全局变量和局部变量

    JS全局变量和局部变量全局变量和局部变量在看了一个博主写的关于js全局变量的的介绍后,自己也跟着做了一下,并且记录在这里。原博客地址:谈谈JS的全局变量跟局部变量。博主说的比较详细,也比我的表达好,如果不是没耐心,建议去看看原博主的文章先上一段代码:<scripttype=”text/javascript”>vara=1;functiontest(){ alert(a); a=4; aler

    2022年5月26日
    36
  • Python学习总结之基础语法知识汇总(一)

    Python学习总结之基础语法知识汇总(一)本文章包含了Python一系列基本知识,其中包括:基本数据类型(整数,浮点数,复数,字符串);分支语句;异常处理;函数;局部变量与全局变量;递归;组合数据类型(集合,元组,列表,字典);文件基本操作基本数据类型一,数字类型及操作(1)整数类型可正可负,无取值范围限制pow(x,y):计算x^y(2)浮点数类型存在不确定尾数 rou…

    2022年6月24日
    44
  • 导航守卫beforeEach的运用

    导航守卫beforeEach的运用beforeEach用于在路由跳转前要执行的方法。我在项目中用于全局main.js中,判断是否登录,如果登录就继续跳转,没有登录就去跳转页面constrouter=newVueRouter({…})router.beforeEach((to,from,next)=&gt;{if(to.matched.some(record=&gt;record.meta.req…

    2022年6月29日
    31
  • Idea激活码最新教程2024.2.1版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2024.2.1版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2024 2 1 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 2 1 成功激活

    2025年5月28日
    10
  • Kimi杨植麟:很多普遍使用的技术标准正成为Scaling的瓶颈

    Kimi杨植麟:很多普遍使用的技术标准正成为Scaling的瓶颈

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号