在前端开发中,跨域问题是一个常见的问题。它指的是在使用 XMLHttpRequest 或 Fetch 进行 AJAX 请求时,请求的 URL 的域名与当前页面的域名不一致,导致浏览器拒绝请求的问题。本文将介绍在 Deno 中如何处理跨域问题。
什么是跨域?
在 Web 中,同源策略是一种基本的安全策略,它限制一个域下的资源只能被同域下的页面访问。同源指的是协议、域名、端口号完全相同,如 https://example.com 和 https://example.com:80,即使二者只是端口号不同,也算跨域。
跨域的问题一般出现在 AJAX 请求、WebSocket、postMessage、CSS @font-face 和 标签的跨域加载等场景中。
如何在 Deno 中处理跨域?
- CORS(Cross-Origin Resource Sharing)跨域资源共享
CORS 是一种浏览器机制,它能够预处理 AJAX 请求,并决定是否允许跨域访问。Deno 提供了一个第三方的 cors 模块,可以安装使用。使用示例如下:
安装 cors 模块
------ - ----------- - ---- --------------------------------- ------ - ------- - ---- ---------------------------------- ----- --- - --- -------------- -------- --------- ------- ------------------------ --- -- ------------ ----- ---- ---
启动服务
---- --- ----------- ---------
在客户端使用 AJAX 请求时,在请求头中加入 Access-Control-Allow-Origin
字段即可:
----- --- - --- ----------------- --------------- ---------------------------------- --------------------------------------------------- ------------------------- -----------
- JSONP(JSON with padding)跨域请求
JSONP 是一种破解跨域限制的方式。它通过在页面上动态创建