django解决跨域请求的问题

作者:AFei0018 时间:2021-09-01 05:43:23 

解决方案

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

来源:https://blog.csdn.net/apple9005/article/details/54427902

标签:django,跨域
0
投稿

猜你喜欢

  • 如何用python抓取B站数据

    2023-07-19 20:02:55
  • 详解Mybatis逆向工程中使用Mysql8.0版本驱动遇到的问题

    2024-01-16 16:48:19
  • vue中英文切换实例代码

    2024-05-29 22:29:37
  • tensorflow学习笔记之简单的神经网络训练和测试

    2021-02-18 20:28:14
  • python机器人行走步数问题的解决

    2023-12-24 23:26:05
  • django框架使用方法详解

    2021-07-07 18:12:00
  • thinkphp的URL路由规则与配置实例

    2023-11-16 02:58:57
  • Python如何读取相对路径文件

    2023-12-06 17:03:18
  • python unichr函数知识点总结

    2022-02-03 11:48:31
  • Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法

    2021-01-16 18:41:38
  • python自动统计zabbix系统监控覆盖率的示例代码

    2023-11-14 08:23:03
  • numpy的sum函数的axis和keepdim参数详解

    2021-08-02 02:48:46
  • python模块之re正则表达式详解

    2021-08-15 03:34:52
  • Python实现简单的列表冒泡排序和反转列表操作示例

    2022-10-18 08:46:04
  • 深入解读Python解析XML的几种方式

    2022-11-29 02:52:31
  • 全屏窗无提示关闭父窗口

    2013-06-30 05:41:36
  • php中关于普通表单多文件上传的处理方法

    2023-11-14 20:21:21
  • python实现比较文件内容异同

    2022-11-10 19:25:27
  • python3+PyQt5使用数据库窗口视图

    2023-03-08 10:44:26
  • pandas多层索引的创建和取值以及排序的实现

    2023-07-09 23:12:54
  • asp之家 网络编程 m.aspxhome.com