Are you an LLM? You can read better optimized documentation at /vite-press/frontend/network/cors.md for this page in Markdown format
跨域 CORS
跨域问题指的是:浏览器限制了当前网页从不同的域名、端口、协议访问另一个网站的资源的限制。浏览器是基于同源策略来限制跨域访问的。
同源策略指的是:协议、域名、端口号必须完全相同
解决跨域指的是:通过各种方式,避开浏览器的安全限制
解决方案
JSONP:通过动态创建<script>标签,通过src属性加载一个API,并在url参数中携带回调函数名,服务端返回一个执行该回调函数的JavaScript脚本。JSONP仅支持GET请求,且只能用于跨域获取数据,无法实现向服务器提交数据。CORS:服务器设置响应头中的Access-Control-Allow-Origin字段,允许指定的域名跨域访问该资源。使用CORS需要服务器端支持,且需要前端进行额外的配置,可以支持GET/POST等请求类型。代理服务器:前端请求自己的服务器,自己的服务器再去请求目标服务器,最后将目标服务器的响应返回给前端。由于是同源请求,不存在跨域问题,但需要在自己的服务器上进行配置。WebSocket:WebSocket协议是一种在单个TCP连接上进行全双工通信的协议,它不受同源策略的限制。通过在客户端和服务器之间建立WebSocket连接,可以在跨域情况下进行实时通信。postMessage:可以在跨域的窗口之间发送消息,通过对消息的监听来实现跨域通信。