我有一个API端点,用于注册用户并由移动应用程序使用:
/mobile/v1/signup
我最近把这个应用从django1.7迁移到django1.10。在这之后,我开始犯这个奇怪的错误。如果此API第二次访问,则返回412 (precondition failed)
错误。在
我在网上搜索,只要我明白,就会发生以下情况:
第一次,后端在响应中返回Etag
。然后,这个Etag
在第二次访问这个API时被发送回服务器。如果不匹配,则返回412
。在
我通过手动设置此API响应的Etag头随机值来解决此问题:
^{pr2}$但我不认为这是一个好的解决办法。在
正确的解决方法是什么?在
我的中间件:
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'msd.middleware.RequestIdMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'apps.dashboard.middleware.DashboardMiddleware',
'api.middleware.UserAgentMiddleware',
]
用户代理中间件:
class UserAgentMiddleware(MiddlewareMixin):
# A middleware that adds a "user_agent" object to request
def process_request(self, request):
request.user_agent = SimpleLazyObject(lambda: get_user_agent(request))
目前没有回答
相关问题 更多 >
编程相关推荐