在开发跨源资源共享(CORS)的API时,会遇到许多实际问题。以下是一些常见的CORS案例研究,以及如何解决它们。
案例一:前端页面请求后端API
问题:前端页面部署在域名A上,而后端API部署在域名B上。前端页面尝试请求后端API时,浏览器因为CORS策略阻止了请求。
解决方案:
- 在后端API的响应头中添加
Access-Control-Allow-Origin
字段,并指定允许的源域名,例如Access-Control-Allow-Origin: http://domainA.com
。 - 如果需要支持预检请求,还需在响应头中添加
Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。
案例二:跨域请求资源
问题:前端页面需要请求一个位于不同域名的资源,例如图片、CSS、JavaScript等。
解决方案:
- 在服务器端设置响应头
Access-Control-Allow-Origin: *
,允许所有域名的跨域请求。 - 如果需要限制特定域名,可以参考案例一中的解决方案。
案例三:跨域请求表单数据
问题:前端页面需要通过表单提交数据到后端API。
解决方案:
- 在后端API的响应头中添加
Access-Control-Allow-Origin
字段,并指定允许的源域名。 - 设置
Access-Control-Allow-Methods
为POST
,允许跨域POST请求。 - 设置
Access-Control-Allow-Headers
,允许前端发送自定义请求头。
扩展阅读
想了解更多关于CORS的知识,可以访问我们的API指南页面。
CORS示意图