Umi 是一个可插拔的企业级前端运用结构,旨在提供现代化的开发体会。它内置了路由、构建、布置、测验等功能,而且支持运用插件扩展更多功能。在开发过程中,常常需求署理 API 恳求到后端服务器,以处理本地开发环境中的跨域恳求问题。Umi 提供了一种简洁的方式来装备 API 署理。

Umi 中的 API 署理装备

在 Umi 项目中,API 署理是经过装备文件(一般是 .umirc.jsconfig/config.js)来完成的。这个署理机制基于 webpack-dev-server 的署理功能,答应开发者在本地开发环境中处理跨域问题,经过署理将前端恳求转发到实践的后端服务。

具体装备方法

在 Umi 的装备文件中,你能够这样装备署理:

export default {
  proxy: {
    '/api': {
      target: 'http://your.backend.server.com',
      changeOrigin: true,
      pathRewrite: { '^/api': '' },
    },
  },
};

装备解说:

  • /api:这是需求署理的恳求途径匹配规矩。一切以 /api 最初的恳求都会被署理到指定的 target
  • target:方针服务器地址,即实践的后端服务地址。
  • changeOrigin:这个参数的作用是修正 HTTP 恳求头中的 Origin 字段。当设置为 true 时,署理服务器会将原始恳求头中的 Origin 替换为方针服务器的地址。这一步骤是关键,因为它使得后端服务器认为恳求是从本身的域名建议的,然后能够绕过跨域战略的限制。
  • pathRewrite:途径重写规矩,用于修正实践恳求发送到后端服务器的途径。在上面的例子中,将恳求途径中的 /api 替换为空字符串,意味着恳求 /api/user 实践上会被署理到 http://your.backend.server.com/user

changeOrigin 的进一步说明

changeOrigin 参数在跨域署理中扮演了重要人物。一般,浏览器出于安全考虑,会限制跨域恳求,而且在建议跨域恳求时,浏览器会自动增加 Origin 恳求头。服务器根据这个头部来决定是否接受恳求。如果后端服务有跨域战略(CORS),那么不从同一个源建议的恳求或许会被拒绝。

经过将 changeOrigin 设置为 true,署理服务器会将恳求头中的 Origin 改为方针服务器的域名。这样做“模拟”了恳求是从后端服务器自己的域建议的,然后避开了 CORS 战略的限制,使得本地开发环境下的跨域恳求能够成功。

总结

在 Umi 中装备 API 署理是一个处理本地开发跨域问题的有用方法。经过合理装备署理规矩和运用 changeOrigin 参数,开发者能够确保前端运用能够顺利地与后端服务进行通信,无需忧虑跨域恳求或许遇到的问题。希望这次的解说愈加具体和准确,有助于深入理解 Umi 署理装备的工作原理和方法。