vue+django跨域问题

解决办法:


MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'yshop.middleware.AuthorizeMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# CSRF_COOKIE_HTTPONLY = True

CORS_ALLOWED_ORIGINS = [
'http://127.0.0.1:8080', # 允许跨域请求的源
]

CORS_ORIGIN_WHITELIST = [
'http://127.0.0.1:8080',
]

CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
]

CORS_ALLOW_HEADERS = [
'username', # 允许的请求头
'Authorization',
'*',
'dnt',
'source',
'origin',
'Pragma',
'accept',
'user-agent',
'x-csrftoken',
'X_FILENAME',
'content-type',
'authorization',
'authentication',
'XMLHttpRequest',
'accept-encoding',
"x-requested-with",
]

REST_FRAMEWORK = {

'DEFAULT_AUTHENTICATION_CLASSES': (

'rest_framework.authentication.TokenAuthentication',

)

}
# 支持跨域配置开始
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True




最重要的一点:
中间件的顺序:
'corsheaders.middleware.CorsMiddleware', 必须放第一个!!!


posted @   lytcreate  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示