首页 > 解决方案 > python3 - 访问 XMLHttpRequest,请求的资源上不存在“Access-Control-Allow-Origin”标头

问题描述

我正在尝试调用一个我遇到 CORS 错误的 api。

从源“https://dev.advasmart.in”访问“https://....../”处的 XMLHttpRequest 已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头在请求的资源上。

**settings.py**

ALLOWED_HOSTS = ['*']
INSTALLED_APPS = ['corsheaders']
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]


CORS_ORIGIN_ALLOW_ALL = True


**Ajax call-**

$.ajax({
                    type: "POST",
                    url: my_host + "api/v1/....../",
                    data: {
                        'action': 'reset_chain_transaction',
                        'base_transaction_id': base_id,
                        'property_id':property_id,
                    },
                }).then(response => {
                    console.log(response)
                    if (response.status_code === 1) {
                        location.reload();
                    } else {
                        swal({
                            title: 'Could not reset chain',
                            text: `${response.message}`,
                            type: 'error',
                            timer: 500000,
                        }).then(function (isConfirm) {
                            if (isConfirm) {
                                location.reload();
                            }
                        });
                    }
                })

标签: pythonjqueryajaxdjango-templates

解决方案


推荐阅读