在开发跨源资源共享(CORS)的API时,会遇到许多实际问题。以下是一些常见的CORS案例研究,以及如何解决它们。

案例一:前端页面请求后端API

问题:前端页面部署在域名A上,而后端API部署在域名B上。前端页面尝试请求后端API时,浏览器因为CORS策略阻止了请求。

解决方案

  1. 在后端API的响应头中添加Access-Control-Allow-Origin字段,并指定允许的源域名,例如Access-Control-Allow-Origin: http://domainA.com
  2. 如果需要支持预检请求,还需在响应头中添加Access-Control-Allow-MethodsAccess-Control-Allow-Headers

案例二:跨域请求资源

问题:前端页面需要请求一个位于不同域名的资源,例如图片、CSS、JavaScript等。

解决方案

  1. 在服务器端设置响应头Access-Control-Allow-Origin: *,允许所有域名的跨域请求。
  2. 如果需要限制特定域名,可以参考案例一中的解决方案。

案例三:跨域请求表单数据

问题:前端页面需要通过表单提交数据到后端API。

解决方案

  1. 在后端API的响应头中添加Access-Control-Allow-Origin字段,并指定允许的源域名。
  2. 设置Access-Control-Allow-MethodsPOST,允许跨域POST请求。
  3. 设置Access-Control-Allow-Headers,允许前端发送自定义请求头。

扩展阅读

想了解更多关于CORS的知识,可以访问我们的API指南页面。


CORS示意图