requests请求django接口跨域问题处理

参考:

https://zhuanlan.zhihu.com/p/416978320

https://blog.csdn.net/SweetHeartHuaZai/article/details/130983179

使用httpx代替requests

bash 复制代码
import httpx

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
}

res = httpx.get(url='https://www.baidu.com/', headers=headers, timeout=10, verify=False)
print(res.text)

django中添加如下配置:

bash 复制代码
INSTALLED_APPS = [

'corsheaders',

]

MIDDLEWARE_CLASSES = [

'corsheaders.middleware.CorsMiddleware', #这个放到第一位

]

注意:

是MIDDLEWARE_CLASSES 不是MIDDLEWARE,否则不生效。

如果处理后报如下错误:

bash 复制代码
ERRORS:
?: (admin.E408) 'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (admin.E409) 'django.contrib.messages.middleware.MessageMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (admin.E410) 'django.contrib.sessions.middleware.SessionMiddleware' must be in MIDDLEWARE in order to use the admin application.
        HINT: Insert 'django.contrib.sessions.middleware.SessionMiddleware' before 'django.contrib.auth.middleware.AuthenticationMiddleware'.

处理办法如下(同时添加MIDDLEWARE_CLASSES 和 MIDDLEWARE ):

bash 复制代码
MIDDLEWARE_CLASSES = [
    'corsheaders.middleware.CorsMiddleware',
]

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
]
相关推荐
IT_陈寒1 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端
Pedantic2 小时前
SwiftUI 手势笔记
前端·后端
金銀銅鐵2 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
飘尘5 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
浏览器工程师6 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
行者全栈架构师6 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
Chenyiax6 小时前
从一次请求看懂 OkHttp:架构、调度与连接管理
后端
爱勇宝7 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
cup117 小时前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill