Django解析跨域问题

跨域问题解决

CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种跨域访问的机制,可让Ajax实现跨域访问。

其实,在服务器的response header中,加入"Access-Control-Allow-Origin: *"便可支持CORS,很是的简单,apache/nginx等怎么配置,见参考文档。

在Django中,有人开发了CORS-header的middleware只需在settings.py中做一些简单的配置即可,其他不用作任何修改,我们也不用自己手动的创建中间件对response处理了,直接用以下配置即可, 现在用起来服务器端完全开放,开启CORS,没有任何跨域烦恼

1,安装django-cors-headers库

pip install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple

2,添加到应用程序中

INSTALLED_APPS = [

... ,

"corsheaders" ,

... ,

]

3,在中间件中加监听响应

CorsMiddleware 需要放在第一位,不放在第一位,可能会造成某些请求没有添加CORS。

MIDDLEWARE = [

"corsheaders.middleware.CorsMiddleware" ,

... ,

]

4,设置访问白名单

CORS_ORIGIN_ALLOW_ALL为True, 指定所有域名(ip)都可以访问后端接口, 默认为False

CORS_ORIGIN_ALLOW_ALL = True

5,设置允许携带cookie

CORS_ALLOW_CREDENTIALS = True

6,设置默认允许请求头方法。

CORS_ALLOW_METHODS = [

'GET',

'POST',

'PUT',

'PATCH',

'DELETE',

]

最后我们在测试前面的vue调用实例:

测试OK。说明跨域请求配置没问题

相关推荐
爱勇宝13 分钟前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
cup1113 分钟前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
AskHarries29 分钟前
工具失败时怎么办:重试、回滚、人工确认和风险提示
后端·程序员
苏三说技术2 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
aqi002 小时前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
长栎3 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode3 小时前
Redis 在生产项目的使用
前端·后端
用户559822481223 小时前
Docker Compose Down 导致容器数据误删——ext4 日志恢复全记录
后端
LiaCode3 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端