跨域产生原因
浏览器发送ajax请求访问其他服务器的资源(域名或端口不同)。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
CORS(Cross-Origin Resource Sharing)
跨域资源共享。它是W3C标准,是跨源AJAX请求的根本解决方法。相比JSONP只能发GET请求,CORS允许任何类型的请求。允许浏览器向跨Origin的服务器发起js请求获取响应。
Nginx如何配置解决跨域问题
在nginx.conf中的server节点下添加如下配置:
#允许跨域请求的域, *代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法, 比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;