Python django解决跨域请求的问题
2024-10-02 22:33:30
解决方案
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
最新文章
- 探索 SharePoint 2013 Search功能
- jQuery简介<;思维导图>;
- HDU 4902 Nice boat (线段树)
- 【扩展欧几里得】Bzoj 1477:青蛙的约会
- 一张图让你看懂锻压、CNC、压铸、冲压四类工艺!
- 数据挖掘R与SQL
- CMD 下 进入 ORACLE
- HDU_1241——石油探索DFS
- Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
- [SQL基础教程] 2-1 SELECT语句基础
- python的re正则表达
- 使用PowerApps快速构建基于主题的轻业务应用 &mdash;&mdash; 进阶篇
- Android Material Design(一)史上最全的材料设计控件大全
- CSS属性速查表
- Python3 标准库学习
- F - Currency Exchange
- R语言-散点图阵
- GoldenGate实时投递数据到大数据平台(4)- ElasticSearch 2.x
- laravel中短信发送验证码的实现方法
- 加快Qemu Aarch32虚拟开发板的启动速度
热门文章
- Host Only、NAT和Bridge三种网络连接
- Linux新手随手笔记1.5
- Net core 关于缓存的实现
- Swagger 报错 no mapping found for http request with uri [/***/swagger-ui.html] in dispatcherservlet with name &#39;***&#39;
- STL—之迭代器,文中推荐的博客很给力
- 放下VS2010,拥抱VS2019
- Python----支持向量机SVM
- 分布式唯一ID生成方案是什么样的?(转)
- mysql-笔记-datetime
- Leetcode 4.28 string