首先,明确一个问题,就是跨域需要服务端支持才行,而不是靠前端修改代码可以解决的,无论你用jquery axios fetch都是如此。
这里介绍一下,如果使用的是Django2.0本身作为web服务端,该如何处理跨域请求问题。
1 安装插件
pip install django-cors-headers
2 编辑配置文件(settings.py)
INSTALLED_APPS = [
''''''''''''
''''''''''''
''''''''''''
''''''''''''
''''''''''''
'corsheaders',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware', #这里是新增的中间件
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
至此,就可以解决跨域异步请求的问题了,服务端的不同配置也不一样,比如使用nginx服务就需要单独配置nginx才能让服务端支持,所以不能一概而论。