利用Nginx可以最简单且高效解决跨域问题。
跨域是前后端分离开发中非常常见的问题。这个问题网上已经有非常多的答案,但大部分是编程框架里面添加CORS头。但无论用什么Web框架,现已很难离开Nginx。因此直接在Nginx中处理跨域问题有得天独厚的优势,可以将OPTIONS请求拦截在API服务之前,节约服务器开销。
简单说,跨域分为简单跨域和复杂跨域。
简单跨域不会发送OPTIONS请求。
复杂跨域会发送一个预检查OPTIONS请求。
复杂跨域的条件是:
- 非GET、HEAD、POST请求。
- POST请求的
Content-Type不是application/x-www-form-urlencoded,multipart/form-data, 或text/plain。 - 添加了自定义header,例如
Token。
跨域请求浏览器会在Headers中添加Origin,通常情况下不允许用户修改其值。



