如何在 Node.js 中处理跨域访问?

阅读时长 3 分钟读完

随着前端开发逐渐向前发展,单一页面应用(SPA)和跨域访问的应用场景越来越广泛,因此解决跨域问题成为前端开发中的重要任务之一。在 Node.js 中解决跨域问题,可以使用中间件来进行配置。

解决方案

  1. CORS

CORS(跨来源资源共享)是一种机制,它使用额外的 HTTP 头部告诉浏览器让运行在一个源上的Web应用被准许访问来自不同源服务器上的指定的资源。为了实现跨域,需要在服务器端添加对应的标头。

-- -------------------- ---- -------
----- ------- - ------------------
----- ---- - ---------------
----- --- - ---------
 
---------------
 
--------------- ----- ---- -- -
  ------------------ ------- ---------
--
  1. JSONP

JSONP 是一种前端技术,它通过动态创建 script 标签并指定请求的 URL,再通过回调函数处理返回值来完成跨域。

-- -------------------- ---- -------
-------- ---------- ----- --------- -
  ----- ------ - ---------------------------------
  ---------- - --- - --- - -----
  ----------------------------------
  ---------------- - -------------- -
    ---------------
    ----------------------------------
  --
-
 
-- ----
---------------------------------- ----------- -------------- -
  ------------------
---
  1. 代理

代理是指在服务端,通过将请求发送到另一个地址获取资源,再将获取到的资源返回给前端。这种方式适用于前端无法直接请求外部 API,或请求外部 API 返回的数据需要进行加工的情况。

-- -------------------- ---- -------
----- ------- - ------------------
----- ---- - ---------------
----- --- - ---------
 
--------------- ----- ---- -- -
  ----- ------- - -
    --------- ------------------
    ----- ---
    ----- -------
    ------- ------
    -------- -
      --------------- -------------------
      ------------------------------ ---
    -
  -
 
  ----- -------- - --------------------- ---------- -- -
    ----------------------------
    ------------------- ------- -- -
      ----------------
    --
    ------------------ -- -- -
      ---------
    --
  --
 
  -------------------- --- -- -
    -------------------- ---- -------- --------------
  --
 
  --------------
--

总结

以上三种方案均适用于解决 Node.js 中的跨域问题,具体使用哪一种方案,取决于项目实际情况。CORS 方案更为简单,但是可能会影响安全性,JSONP 方案和代理方案适用于需要进行特殊处理的情况。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6487c62d48841e9894653e1b

纠错
反馈