前后端分离项目django跨域配置

        前后端分离的项目中,前端和后端通常运行在不同的服务器或者端口上。这种情况下,当前端尝试获取后端的数据时,就会遇到跨域问题。跨域问题是由于浏览器的同源策略导致的。同源策略是一种约定,它规定了浏览器可以从哪些源(协议、域名、端口都相同)加载资源。  跨域问题指的是,当一个网页尝试从不同的源请求数据时,浏览器会阻止这个请求,以保护用户的安全。例如,如果你的前端运行在http://localhost:3000,而你的后端运行在http://localhost:8000,那么当前端尝试获取后端的数据时,就会遇到跨域问题。只要url中的ip:port任意一个不同,就被视为跨域

django解决跨域问题遵从如下步骤:

1)settings.py文件的INSTALLED_APPS中添加corsheaders,一定要放在需要跨域请求的app前面。

2)settings.py文件的MIDDLEWARE中添加corsheaders.middleware.CorsMiddleware,务必写在CommonMiddleware的上方。

3)settings.py文件中新增CORS_ORIGIN_ALLOW_ALL = True,设置后端允许所有的源(任何网站或web应用)都可以访问Django 应用的资源,不受到同源策略的限制。

4)settings.py文件中新增CORS_ORIGIN_WHITELIST = (['http://*:*']),设置跨域白名单,*:*表示支持任意ip和端口。

5)settings.py文件中新增CORS_ALLOW_METHODS ,指定哪些 HTTP 方法可以被跨源请求

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)

6)settings.py文件中新增CORS_ALLOW_HEADERS,指定哪些 HTTP 请求头可以被跨源请求

CORS_ALLOW_HEADERS = (
    'x-requested-with',
    'content-type',
    'accept',
    'origin',
    'authorization',
    'x-csrftoken',
    'Content-Disposition',
    'Cookie',
    'user-agent',
    'dnt',
    'accept-encoding',
)

7)settings.py文件中新增CORS_ALLOW_CREDENTIALS = True,设置允许跨源请求携带凭证(如 Cookies 和 HTTP 认证信息)

8)settings.py文件中新增ALLOWED_HOSTS = ['*'],设置定义了哪些主机/域名可以访问Django应用。  '*'是一个通配符,表示允许所有主机可以访问。这个设置在生产环境中非常重要,因为它可以防止HTTP Host头攻击。在开发环境中,你通常可以设置为['*'],但在生产环境中,应该设置为实际主机名或者IP地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值