跨域是什么
- 跨域是指在浏览器中运行的前端程序试图通过XMLHttpRequest等方式向不同域的后端服务器发送请求时,会遭遇浏览器同源策略限制的情况
- 默认情况下,浏览器只允许在同一来源(协议、域名、端口)下进行请求,而跨域请求会被浏览器拦截
解决方法
方法一:Nginx解决
Nginx 轻松搞定跨域问题 在反向代理时通过增加add_header 解决
server {
listen 22222;
server_name localhost;
location / {
#add_header Access-Control-Allow-Origin 'http://localhost:8080' always;
add_header 'Access-Control-Allow-Origin' '*'; #会显示在响应头里面
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Allow-Methods' '*';
add_header 'Access-Control-Allow-Credentials' 'true'; #解决跨域cookie的问题
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_pass http://localhost:59200;
proxy_set_header Cookie $http_cookie; #解决跨域cookie的问题
}
}
方法二:Django解决跨域问题的方法
使用django-cors-headers 模块
Django跨域问题解决