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',
]
相关推荐
昵称为空C10 分钟前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默32 分钟前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin1 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js
该用户已不存在1 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
Moonbit1 小时前
MoonBit 正式加入 WebAssembly Component Model 官方文档 !
前端·后端·编程语言
Goland猫2 小时前
电商架构图
后端
Java中文社群2 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
我是天龙_绍2 小时前
Whisper 通过 mp3输出中文
后端
zjjuejin2 小时前
Maven环境搭建
后端·maven
我是天龙_绍2 小时前
项目根目录有requirements.txt 如何安装
后端