前台

我们首先前台向后台发送Ajax请求,如下:这里用的是HBuilder X开发工具 端口号默认是8848

<script src="js/jquery-3.3.1.js"></script><script>function aa(){$.get("http://localhost:8080/requestBody/aaa",function(data){alert(data.name)});}</script>

后台接口 端口为8080

@RequestMapping("/aaa")@ResponseBodypublic Student aaa(){System.out.println("aaa");return new Student("张三",11);}

访问报错 如下: 这是由于 Ajax访问 ip或者端口 与 发送的ip端口 不一致 导致的Ajax跨域访问问题

解决如下

当然有好几种解决问题 这里只阐述 使用 Ngnix 正向 代理来解决Ajax跨域访问问题

这里的话 正向代理与反向代理 简单阐述一下

  • 正向代理

    • 首先先要搭建一台代理服务器比如Ngnix服务器

    • 客户端发送请求到代理服务器

    • 代理服务器去请求服务器

    • 服务器返回数据给代理服务器

    • 代理服务器再将数据返回给客户端

      • 举一个简单的例子:

        你去找你爸爸借钱 你爸爸没有 你爸爸去找你妈妈借钱 你妈妈把钱给爸爸 爸爸在把钱给你 (但是你妈妈并不知道是你借的钱)

        • 用途:当你用浏览器访问国外的网站时,被block(拒绝)时,你可以在国外搭建一个代理服务器,这样就可以正常访问了(只是举一个列子)

  • 反向代理

    • 客户端发送请求到服务器 (客户端其实是访问的反向代理服务器,但是客户端不知道)

    • 反向代理服务器发送请求到真正的服务器

    • 真正的服务器返回数据给反向代理服务器

    • 反向代理服务器将数据返回给客户端

作用:用户请求过多,服务器会有一个处理的极限。所以使用反向代理服务器接受请求,再用均衡负载将请求分布给多个真实的服务器。既能提高效率还有一定的安全性。

用途:如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网

正向代理与反向代理最简单的区别:正向代理隐藏的是用户,反向代理隐藏的是服务器

回归正题

由于Ajax请求的ip或端口 与发送的ip和端口 不一致 ,就会导致Ajax跨域问题

首先先将前台写的小demo部署到代理服务器上 端口为10001

这时我们将前台Ajax的请求地址 改为 http://localhost:10001/pro-api/requestBody/aaa

  • 当Ajax请求到http://localhost:10001/pro-api的时候 代理服务器会将pro-api之前的 http://localhost:10001/替换成

    http://localhost:8080/ ,rewrite ^/pro-api/(.*)$ /$1 break 的意思就是 把pro-api删除拼接上后面的地址requestBody/aaa

    运行结果:

这样的话 就可以解决Ajax跨域问题 !

还有最最最重要的 今天我生日 可以祝福一下吗 谢谢!!

Ngnix解决Ajax跨域问题相关推荐

  1. 用iframe设置代理解决ajax跨域请求问题

    用iframe设置代理解决ajax跨域请求问题 参考文章: (1)用iframe设置代理解决ajax跨域请求问题 (2)https://www.cnblogs.com/ranzige/p/370965 ...

  2. 解决AJAX跨域WCF的问题详解

    解决AJAX跨域WCF的问题详解 参考文章: (1)解决AJAX跨域WCF的问题详解 (2)https://www.cnblogs.com/jooucks/p/7159147.html 备忘一下.

  3. 使用SpringMVC解决Ajax跨域问题

    使用SpringMVC解决Ajax跨域问题 参考文章: (1)使用SpringMVC解决Ajax跨域问题 (2)https://www.cnblogs.com/mengyao/p/6294787.ht ...

  4. php json -gt;访问,【转】Php+ajax+jsonp解决ajax跨域问题

    首先:jsonp是json用来跨域的一个东西. 原理是通过script标签的跨域特性来绕过同源策略. 发送端: $.ajax({ type : "post", url : &quo ...

  5. jsonp解决ajax跨域问题,用JSONP解决ajax跨域问题

    JSONP:JSON With Padding 要点: 1.script标签 2.用script标签加载资源是没有跨域问题的 概要: 在资源加载进来之前先定义一个函数,这个函数接受一个参数(数据),函 ...

  6. 如何解决ajax跨域问题(转)

    由 于此前很少写前端的代码(哈哈,不合格的程序员啊),最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题.本篇将讲述一个小白从遇到跨域不 ...

  7. 如何解决ajax跨域问题

    原文:http://www.congmo.net/blog/2012/06/27/ajax-cross-domain/ 跨域问题 起 因是这样的,为了复用,减少重复开发,单独开发了一个用户权限管理系统 ...

  8. [jQuery基础] jQuery案例 -- qq音乐以及初步解决Ajax 跨域问题

    qq音乐案例 案例效果展示 案例效果结构划分 整体布局 歌曲条目部分 顶部栏 底部栏 歌词显示部分 案例实现功能 a. QQ音乐播放器静态页面布局 * 页面整体布局规划和实现 * 页面顶部布局和静态效 ...

  9. 本地主机作服务器解决AJAX跨域请求访问数据的方法

    本地主机作服务器解决AJAX跨域请求访问数据的方法 参考文章: (1)本地主机作服务器解决AJAX跨域请求访问数据的方法 (2)https://www.cnblogs.com/QiScript/p/5 ...

最新文章

  1. 「LibreOJ β Round #2」计算几何瞎暴力
  2. DIV与Table布局在大型网站的可用性比较
  3. Android中的Fragment使用
  4. (6)Zynq AXI_HP接口介绍
  5. Windows下MySQL的详细安装教程
  6. 64位和32位的区别
  7. 为什么要学习Windows程序设计?
  8. 软考数据库系统工程师是什么?如何备考?
  9. 网络安全工程师与渗透测试工程师有哪些区别
  10. GIS投影、坐标系、坐标系转换
  11. 简单的钓鱼网站的制作
  12. 刀刀漫画合集(共享PDF,RAR,UMD版本和语录)
  13. oppo的sd卡在哪里打开_oppo手机sd卡怎么打开 oppo手机sd卡怎样打开
  14. 计算机金钱符号怎么打,€欧元符号怎么打出来?各种输入欧元的货币符号方法!...
  15. 《机器学习实战》第三章:决策树(3)测试、存储、实例
  16. 6个 Python 办公黑科技,工作效率提升100倍!(附代码)
  17. Cannot create an instance of class AndroidViewModel (androidx ViewModelProvider AndroidViewModel)
  18. linux判断搜索结果,shell编程之条件判断和find查询
  19. Java 垃圾回收机制与几种垃圾回收算法
  20. 多相全程水处理器原理图

热门文章

  1. 10分钟开发一个游戏服务器
  2. bcrypt java maven_BCrypt 密码加密
  3. [Android分享] 使用QQ账号,新浪微博账号登录第三方应用
  4. Android集成阿里云推送功能
  5. Mybits与Hibernate的区别
  6. Spring boot 集成rocketMQ 官方文档
  7. AcWing第 71 场周赛题解
  8. jslinux-deobfuscated-network
  9. 华为OD机试真题-查找充电设备组合【2023Q1】【JAVA、Python、C++】
  10. html图标shake,用jQuery抖动插件shake制作抖动菜单