最近在做项目时,前端报错
Access to XMLHttpRequest at 'http://xxx.xxx.xx.xx/user/1ogin' from origin 'http://192.168.43.186:9528'
has been blocked by CORS policy: Request header field x-token is not allowed by Access-Control-Allow-Headers in preflight
明明做了允许跨域的设置,居然还报跨域认证的错误。根据报错的字面意思,当时也想了下是前端headers的问题,前端说他没改代码。发给我看的代码是
这是很正常的headers。在网上查资料也是说headers中有没被允许的字段,于是让抓包看headers,然后就发现了问题所在,X-Token这个字段不在drango的默认允许headers列表中。
在setting.py文件中,将X-Token字段(大小写不敏感)加入允许列表即可。类似报错,在设置好允许跨域的情况下,同理解决。
# 接受请求头
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'X-Token',
)