Python使用django解决跨域请求的问题

 更新时间:2023年07月21日 10:41:36   作者:Codeoooo  
这篇文章主要给大家介绍了python如何使用django解决跨域请求的问题,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以参考下

解决方案

1.安装django-cors-headers

pip3 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

到此这篇关于Python使用django解决跨域请求的问题的文章就介绍到这了,更多相关Python django解决跨域请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中获取列表元素数量的多种实现方式

    Python中获取列表元素数量的多种实现方式

    在Python编程中,经常需要获取列表的元素数量,也就是列表的长度,这在进行数据处理、循环操作等场景中非常常见,Python提供了多种方式来实现这一需求,每种方式都有其特点和适用场景,需要的朋友可以参考下
    2025-07-07
  • pandas删除重复数据简单方法

    pandas删除重复数据简单方法

    这篇文章主要给大家介绍了关于pandas删除重复数据的简单方法,在数据处理过程中常常会遇到重复的问题,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • python实现csdn全部博文下载并转PDF

    python实现csdn全部博文下载并转PDF

    我们学习编程,在学习的时候,会有想把有用的知识点保存下来,我们可以把知识点的内容爬下来转变成pdf格式,方便我们拿手机可以闲时翻看,是很方便的,本文就介绍一下如何实现
    2021-06-06
  • PyTorch实现MNIST数据集手写数字识别详情

    PyTorch实现MNIST数据集手写数字识别详情

    这篇文章主要介绍了PyTorch实现MNIST数据集手写数字识别详情,文章围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • 深入了解Python iter() 方法的用法

    深入了解Python iter() 方法的用法

    这篇文章主要介绍了深入了解Python iter() 方法的知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python实现定时器的5种方法

    python实现定时器的5种方法

    本文主要介绍了python实现定时器的5种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python Excel操作之将ISBN转条形码

    Python Excel操作之将ISBN转条形码

    这篇文章主要为大家详细介绍了Python Excel操作中如何将ISBN转条形码功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • python爬虫之教你如何爬取地理数据

    python爬虫之教你如何爬取地理数据

    这篇文章主要介绍了python爬虫之教你如何爬取地理数据,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • 详解Python的字符串格式化

    详解Python的字符串格式化

    这篇文章主要介绍了Python的字符串格式化,python的format函数怎么用,这篇文章向大家介绍format函数用法,需要的朋友可以参考下
    2023-04-04
  • Python教程之基本运算符的使用(上)

    Python教程之基本运算符的使用(上)

    Python 运算符通常用于对值和变量执行操作。这些是用于逻辑和算术运算的标准符号。在本文中,我们将研究不同类型的 Python 运算符,感兴趣的可以了解一下
    2022-09-09

最新评论