无法在 Django 网站中发布跨源请求
Posted
技术标签:
【中文标题】无法在 Django 网站中发布跨源请求【英文标题】:Unable to post a cross origin request in Django website 【发布时间】:2017-03-07 20:40:12 【问题描述】:即使在安装 CORS 中间件并启用跨域请求之后。我无法使用 javascript 发出发布请求。
const csrf = Cookies.get('csrftoken');
return
'X-CSRFToken' : csrf,
'Access-Control-Allow-Origin':"*"
"Access-Control-Allow-Headers":"Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers";
在 Django 应用中也是如此
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'127.0.0.1',
)
CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken',
'x-api-key'
)
而且在添加 CORS 中间件之后,
MIDDLEWARE_CLASSES = ('corsheaders.middleware.CorsMiddleware')
【问题讨论】:
【参考方案1】:也许您需要设置 Access-Control-Request-Methods。 像这样的
"Access-Control-Request-Methods": "OPTIONS, HEAD, GET, POST"
检查这个问题Default value for Access-Control-Request-Methods
【讨论】:
我在发帖请求时遇到这种情况...Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
以上是关于无法在 Django 网站中发布跨源请求的主要内容,如果未能解决你的问题,请参考以下文章