Django rest_framework 解决 前端发送OPTIONS请求后没有继续发送POST请求

前端发送OPTIONS请求后没有继续发送POST请求。

原因:可能是由于CORS(跨源资源共享)设置的问题。OPTIONS请求是浏览器在发送跨域请求之前发送的预检请求,用于确认服务器是否允许实际的请求。

解决办法:

在Django中,你可以使用django-cors-headers中间件来处理CORS请求。首先,确保你已经安装了django-cors-headers库。

pip install django-cors-headers

然后,在你的Django项目的设置文件中进行以下配置:

  1. 添加corsheaders到setting.py的INSTALLED_APPS中:
INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]
  1. 将CorsMiddleware添加到MIDDLEWARE中的合适位置:
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]
  1. 添加CORS_ORIGIN_ALLOW_ALL设置到你的设置文件中,以允许所有来源的请求:
CORS_ORIGIN_ALLOW_ALL = True
  1. 如果你只想允许特定的来源,可以设置CORS_ORIGIN_WHITELIST为允许的来源列表,例如:
CORS_ORIGIN_WHITELIST = [
    'http://example.com',
    'https://example.com',
]

完成上述步骤后,保存并重新启动Django服务器。现在,你的服务器应该能够处理CORS请求,并且OPTIONS请求后的POST请求也应该能够正常发送。
如果问题仍然存在,请检查浏览器的开发者工具中的Network选项卡,查看OPTIONS请求的响应是否包含CORS相关的头信息,并确保服务器返回了正确的响应。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值