【问题标题】:Unable to post a cross origin request in Django website无法在 Django 网站中发布跨源请求
【发布时间】: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')

【问题讨论】:

    标签: javascript python django


    【解决方案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.
    猜你喜欢
    • 2015-04-22
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2017-04-01
    • 2018-03-13
    • 2019-10-11
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多