Django设置允许跨域请求

1. 安装模块django-cors-headers

pip3 install django-cors-headers

2. 配置django项目的settings.py文件

配置INSTALLED_APPS

INSTALLED_APPS = [
    ...,
    ‘corsheaders‘
]

配置中间件, 注意顺序

MIDDLEWARE = [
    ...,
    ‘corsheaders.middleware.CorsMiddleware‘,
    ‘django.middleware.common.CommonMiddleware‘
]

再settings.py文件末尾添加下面内容

‘‘‘
跨域设置
‘‘‘
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()

CORS_ALLOW_METHODS = (
    ‘DELETE‘,
    ‘GET‘,
    ‘OPTIONS‘,
    ‘PATCH‘,
    ‘POST‘,
    ‘PUT‘,
    ‘VIEW‘,
)

CORS_ALLOW_HEADERS = (
    ‘accept‘,
    ‘accept-encoding‘,
    ‘authorization‘,
    ‘content-type‘,
    ‘dnt‘,
    ‘origin‘,
    ‘user-agent‘,
    ‘x-csrftoken‘,
    ‘x-requested-with‘,
)

原文地址:https://blog.51cto.com/14284354/2480299

时间: 2024-10-10 16:20:12

Django设置允许跨域请求的相关文章

django解决ajax跨域请求

由于jquery禁止通过ajax进行跨域请求,所以在通过ajax请求另外一个不同域名服务api的时候会报错:"No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access" 最简单的两个解决办法: 1.在django中return的时候设置 def xxxxx(request):         ...

Django框架 之 跨域请求伪造

浏览目录 同源策略与Jsonp 同源策略 Jsonp jQuery对JSONP的实现 CORS 简介 两种请求 同源策略与Jsonp 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是

【Django】实现跨域请求

目录 JsonP实现跨域 在Django中间件中添加响应头 @ *** CORS 即 Cross Origin Resource Sharing 跨域资源共享. 跨域请求分两种:简单请求.复杂请求. 简单请求 简单请求必须满足下述条件. HTTP方法为这三种方法之一:HEAD.GET.POST · HTTP头消息不超出以下字段: Accept.Accept-Language.Content-Language.Last-Event-ID · 且Content-Type只能为下列类型中的某一个: a

Django中解决跨域请求问题

目录 解决办法 1. 新建一个中间件,路径为:Django项目/your_app/core.py, 2. 在 项目/setting.py中, 新增 解决办法 通过django中间件进行添加跨域头 1. 新建一个中间件,路径为:Django项目/your_app/core.py, 内容如下 from django.middleware.common import CommonMiddleware class MiddlewareMixin: def __init__(self, get_respo

django 使用iframe跨域请求

settings.py INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE = [ ... 'django.middleware.clickjacking.XFrameOptionsMiddleware', ... ] X_FRAME_OPTIONS = 'ALLOWALL' CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True CORS_ALLOW_METHODS = ('

django 实现全局支持跨域请求

Django 允许跨域请求 一.django 实现支持跨域请求,本人所了解到的方法有两种: 1.视图中进行配置,只实现当前视图支持跨域请求 2.进行全局配置,实现所有视图均支持跨域请求 这里对第二种方法进行一下说明: 1.安装django-cors-headers pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASSES = (

jQuery jsonp跨域请求详解

跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互. 如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的. 如果要在js里发起跨域请求,则要进行一些特殊处理了.或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端. 这里讲下使用jquery的jsonp如何发起跨域请求及其原理. 先看下准备环境:两个端口不一样,构成跨域请求的条件. 获取数据:获取数据

ajax本地跨域请求以及解决方法

什么是跨域? ??我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景.所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源,只要没有同时满足这三个条件的请求即为跨域请求,跨域请求控制台一般会出现类似错误: XMLHttpRequest cannot load http://xxxxx.php. No 'Access-Control-Allow-Origin' header is present on the requested reso

jQuery jsonp跨域请求

跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互. 如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的. 如果要在js里发起跨域请求,则要进行一些特殊处理了.或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端. 这里讲下使用jquery的jsonp如何发起跨域请求及其原理. 先看下准备环境:两个端口不一样,构成跨域请求的条件. 获取数据:获取数据