添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

专题:跨域与CORS解决方法

跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

非同源会导致:

  1. 无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
  2. 无法接触非同源网页的 DOM
  3. 无法向非同源地址发送 AJAX 请求

跨域解决办法有以下几种:

  1. 设置document.domain解决无法读取非同源网页的 Cookie问题
  2. 跨文档通信 API:window.postMessage( )
  3. JSONP:网页通过添加一个<script>元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来
  4. CORS:它是 W3C 标准,属于跨域 AJAX 请求的根本解决方法
  5. 设置webpack本地代理
  6. websocket是HTML5 的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案
  7. 使用 nginx 反向代理实现跨域,是最简单的跨域方式。只需要修改 nginx 的配置即可解决跨域问题,支持所有浏览器,支持 session,不需要修改任何代码,并且不会影响服务器性能。

本文专题讲述CROS。

CORS(基于JQuery AJAX)

CORS跨域资源分享(Cross-Origin Resource Sharing)

前端代码(基于JQuery AJAX方法)

前端(端口号80)http://127.0.0.1/lesson2.html发送data向后端Apache服务器(端口号8080)的get.php资源发送请求

后端Apache服务器需要修改的配置(httpd.conf文件)

关于Apache服务器的安装及配置请参考 Windows下安装及配置Apache服务器
关于PHP安装及配置请参考 Windows下应用于Apache服务器的PHP的安装和配置

后端get.php代码

这样就实现了跨域调用

因为采用了VSCode的Live Server扩展进行调试运行,所以前端端口号为5500

编辑于 2023-01-20 21:54 ・IP 属地上海