django解决跨域请求的问题
来源:互联网 发布:剑桥大学公开数据库 编辑:程序博客网 时间:2024/06/06 10:41
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 = TrueCORS_ORIGIN_ALLOW_ALL = TrueCORS_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
1 0
- django解决跨域请求的问题
- 解决webservice的跨域请求问题
- 如何解决跨域请求的问题
- 解决跨域请求问题
- web开发时,使用django-cors-middleware解决django的跨域问题
- django编码问题的解决
- 解决同域Nginx ajax 请求跨域的问题
- 通过jsonp解决ajax的跨域请求问题
- Tomcat下 解决Ajax请求跨域的问题
- JSONP解决js跨域请求的问题
- 解决JQuery的Ajax请求跨域问题
- 通过jsonp解决ajax的跨域请求问题
- 通过jsonp解决ajax的跨域请求问题
- 完美解决ajax跨域请求的问题
- 通过jsonp解决ajax的跨域请求问题
- 解决asp.net mvc的跨域请求问题
- 关于ajax post请求跨域问题的解决心得
- 解决axios跨域请求出错的问题
- java正则表达式
- PAT乙级1064
- android studio jni路径配置
- Android 原生ExoPlayer 解析
- 坑
- django解决跨域请求的问题
- 在controller中用@value读取配置文件的方法
- C# 特性
- Zeronet-搭建你的p2p全球网站,不要域名,不怕宕机
- 使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
- DataSource和SessionFactory的区别
- 算法提高 11-1实现strcmp函数
- 前序1 前端ps基础
- 正向代理与反向代理【总结】