django解决跨域请求的问题

 更新时间:2018年11月11日 17:12:38   作者:AFei0018  
这篇文章主要介绍了django解决跨域请求的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

解决方案

1.安装django-cors-headers

pip install django-cors-headers

2.配置settings.py文件

INSTALLED_APPS = [
  ...
  'corsheaders',
  ...
 ] 

MIDDLEWARE_CLASSES = (
  ...
  'corsheaders.middleware.CorsMiddleware',
  'django.middleware.common.CommonMiddleware', # 注意顺序
  ...
)
#跨域增加忽略
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 = (
  'XMLHttpRequest',
  'X_FILENAME',
  'accept-encoding',
  'authorization',
  'content-type',
  'dnt',
  'origin',
  'user-agent',
  'x-csrftoken',
  'x-requested-with',
  'Pragma',
)

OK!问题解决!

其他解决方案

另外还从网上看到其他两种解决方案,但都不太合适。在此列出,供大家参考

1.使用JSONP

使用Ajax获取json数据时,存在跨域的限制。不过,在Web页面上调用js的script脚本文件时却不受跨域的影响,JSONP就是利用这个来实现跨域的传输。因此,我们需要将Ajax调用中的dataType从JSON改为JSONP(相应的API也需要支持JSONP)格式。

JSONP只能用于GET请求。

2.直接修改Django中的views.py文件

修改views.py中对应API的实现函数,允许其他域通过Ajax请求数据:

def myview(_request): 
response = HttpResponse(json.dumps({“key”: “value”, “key2”: “value”})) 
response[“Access-Control-Allow-Origin”] = “*” 
response[“Access-Control-Allow-Methods”] = “POST, GET, OPTIONS” 
response[“Access-Control-Max-Age”] = “1000” 
response[“Access-Control-Allow-Headers”] = “*” 
return response

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django实现auth模块下的登录注册与注销功能

    Django实现auth模块下的登录注册与注销功能

    这篇文章主要介绍了Django实现auth模块下的登录注册与注销功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python 异常处理Ⅳ过程图解

    Python 异常处理Ⅳ过程图解

    这篇文章主要介绍了Python 异常处理Ⅳ过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Python Series从0开始索引的方法

    Python Series从0开始索引的方法

    今天小编就为大家分享一篇Python Series从0开始索引的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现运行其他程序的四种方式实例分析

    Python实现运行其他程序的四种方式实例分析

    这篇文章主要介绍了Python实现运行其他程序的四种方式,结合实例形式分析了Python执行其他程序相关模块与函数使用技巧,需要的朋友可以参考下
    2017-08-08
  • Python对XML文件实现增删改查操作

    Python对XML文件实现增删改查操作

    这篇文章主要为大家详细介绍了Python对XML文件进行实现增删改查操作的方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下
    2022-11-11
  • Python函数参数和注解的使用

    Python函数参数和注解的使用

    本文介绍了Python函数的四种参数:定位参数、可变参数、默认值参数、关键字参数,和第五种Python3新特性参数:仅限关键字参数。函数注解是一种元数据,存在__annotations__属性中,备注函数的参数和返回值的类型,它只是个注解,Python不会做任何强制检查。
    2021-06-06
  • 基于Python实现自动扫雷详解

    基于Python实现自动扫雷详解

    这篇文章主要介绍了如何利用Python+OpenCV实现了自动扫雷,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2022-01-01
  • 数据清洗--DataFrame中的空值处理方法

    数据清洗--DataFrame中的空值处理方法

    今天小编就为大家分享一篇数据清洗--DataFrame中的空值处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 一文教你Python如何创建属于自己的IP池

    一文教你Python如何创建属于自己的IP池

    这篇文章主要为大家详细介绍了python如何创建属于自己的IP池,文中的示例代码讲解详细,对我们学习或工作有一定参考价值,需要的可以参考一下
    2022-04-04
  • 对python 中class与变量的使用方法详解

    对python 中class与变量的使用方法详解

    今天小编就为大家分享一篇对python 中class与变量的使用方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论