python - 405 方法不允许,Django + ngrok,仅在我的本地机器上
问题描述
这是一个遗留项目,我正在与我目前工作的其他人一起工作。并且正在做我无法理解的非常奇怪的行为。
它返回 405 http 响应状态,这没有意义,因为这个视图已经接受了 POST 请求
我会分享几个片段,我只是在我要标记的评论中检测到这种情况。
这是视图文件,它实际上接受 GET 和 POST 方法
@csrf_exempt
@load_checkout
@validate_cart
@validate_is_shipping_required
@require_http_methods(["GET", "POST"])
def one_step_view(request, checkout):
"""Display the entire checkout in one step."""
这是修改响应的装饰器,并返回 405。
def load_checkout(view):
"""Decorate view with checkout session and cart for each request.
Any views decorated by this will change their signature from
`func(request)` to `func(request, checkout, cart)`."""
@wraps(view)
@get_or_empty_db_cart(Cart.objects.for_display())
def func(request, cart):
try:
session_data = request.session[STORAGE_SESSION_KEY]
except KeyError:
session_data = ''
tracking_code = analytics.get_client_id(request)
checkout = Checkout.from_storage(
session_data, cart, request.user, tracking_code)
response = view(request, checkout, cart) # in this response it returns 405.
if checkout.modified:
request.session[STORAGE_SESSION_KEY] = checkout.for_storage()
return response
return func
我什么时候可以开始找出问题的任何想法或线索?
郑重声明:我没有编写这个代码,这是几天前工作的,它只是在我的本地环境中发生,在舞台和生产中,甚至其他开发人员的本地工作都很好。我有所有的要求和依赖关系,并且已经更新。
解决方案
如果你的前端使用不同的 HOST && PORT 你需要在 Django 应用中添加 CROS
推荐阅读
- vue.js - Vue 应用程序部署和在没有项目文件的情况下进行更改
- java - 在 Spring Boot Rest api 中使用 @embeded 时在 db 中获取空值?java新手帮帮我
- awk - 在 awk 和 echo 之后删除额外的空间
- python - 我该怎么做才能安装 Open-CV 库?如图所示,我遇到了冲突问题
- pyspark - org.apache.spark.sql.AnalysisException:无法解析 '`sub_tot`' 给定 pyspark 中的输入列
- three.js - 未应用 ThreeJS 面部颜色
- influxdb-2 - 调用通过 InfluxDB Java 2.0 客户端创建存储桶后反序列化响应时出错?
- arrays - 如何在 SwiftUI 中计算数组的总计、小计和平均值
- scrapy - 如何将cloudscraper与scrapy一起使用
- java - 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:没有这样的孩子:1