解决方案
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 = ( \' HttpRequest\', \'X_FILENAME\', \'accept-encoding\', \'authorization\', \'content-type\', \'dnt\', \'origin\', \'user-agent\', \'x-csrftoken\', \'x-requested-with\', \'Pragma\', )
OK!问题解决!
其他解决方案
另外还从网上看到其他两种解决方案,但都不太合适。在此列出,供大家参考
1.使用JSONP
使用Ajax获取json数据时,存在跨域的限制。不过,在Web页面上调用js的 脚本文件时却不受跨域的影响,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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
上一篇 :
易语言运算命令的详细解释
下一篇 :
构建Windows是一项庞大的过程
-
OpenSSL 1.1.1的裁剪
2026-05-19栏目: 教程
-
Springboot+mockito进行单元测试心得整体
2026-05-19栏目: 教程
-
如何用“云”读懂女生的心?TA 做到了
2026-05-19栏目: 教程
-
基于ASP.Net Core开发的一套通用后台框架
2026-05-19栏目: 教程
-
Spring Cloud开发人员如何解决服务冲突和实例乱窜?
2026-05-19栏目: 教程
