介绍
小编给大家分享一下django解决跨域问题的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
django解决跨域问题,具体如下
<强> 1。安装django-cors-headers 强>
pip3 install django-cors-headers
<强> 2。配置设置。py文件强>
INSTALLED_APPS =, ( ,,,… ,,,& # 39;corsheaders& # 39; ,,,… ,) MIDDLEWARE_CLASSES =, ( ,,,… ,,,& # 39;corsheaders.middleware.CorsMiddleware& # 39; ,,,& # 39;django.middleware.common.CommonMiddleware& # 39;,, #,注意顺序 ,,,… ) #跨域增加忽略 CORS_ALLOW_CREDENTIALS =,真的 CORS_ORIGIN_ALLOW_ALL =,真的 CORS_ORIGIN_WHITELIST =, ( ,,,& # 39;* & # 39; ) CORS_ALLOW_METHODS =, ( ,,,& # 39;删除# 39; ,,,& # 39;得到# 39; ,,,& # 39;选项# 39; ,,,& # 39;补丁# 39; ,,,& # 39;文章# 39; ,,,& # 39;把# 39; ,,,& # 39;视图# 39; ) CORS_ALLOW_HEADERS =, ( ,,,& # 39;xmlhttprequest # 39; ,,,& # 39;X_FILENAME& # 39; ,,,& # 39;accept-encoding& # 39; ,,,& # 39;授权# 39; ,,,& # 39;内容类型# 39; ,,,& # 39;dnt # 39; ,,,& # 39;起源# 39; ,,,& # 39;用户代理# 39; ,,,& # 39;x-csrftoken& # 39; ,,,& # 39;x-requested-with& # 39; ,,,& # 39;编译指示# 39; )
其他解决方案
<强> 1。使用JSONP 强>
使用Ajax获取json数据时,存在跨域的限制,不过,在Web页面上调用js脚本的脚本文件时却不受跨域的影响,JSONP就是利用这个来实现跨域的传输。因此,我们需要将Ajax调用中的数据类型从json改为JSONP(相应的API也需要支持JSONP)格式只
JSONP只能用于得到请求。
<强> 2。直接修改Django中的views.py文件强>
修改views.py中对应的API的实现函数,允许其他域通过Ajax请求数据:,
def myview (_request):, 时间=response HttpResponse (json.dumps({“关键”:,“价值”,,“key2”:,“价值”})), 反应(“Access-Control-Allow-Origin”),=,“*”, 反应(“Access-Control-Allow-Methods”),=,”文章,,,,选项”, 反应(“Access-Control-Max-Age”),=,“1000”, 反应(“Access-Control-Allow-Headers”),=,“*”, return 响应
看完了这篇文章,相信你对django解决跨域问题的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!