前端报错时如何排查问题

您所在的位置:网站首页 前端页面报错500 前端报错时如何排查问题

前端报错时如何排查问题

#前端报错时如何排查问题| 来源: 网络整理| 查看: 265

前端页面报错:

 1、页面报错500,首先我们可以知道是服务端的问题,需要去看下服务端的报错信息:

2、首先我们查看下前端是否给后端传了id:

 我们可以看到接口是把ID返回了,就需要再看下p_id是什么情况了

 3、我们再次请求,把p_id进行打印,看下具体是什么:

put接口代码 class PutView(BaseView): def put(self, request): # Django 并没有处理PUT数据,不可以使用request.PUT # 实际put传过来的数据是在request.body中,而获取到的数据是:b'name=%E5%8F%82%E6%95%B06&desc=%E5%8F%82%E6%95%B06%E6%8F%8F%E8%BF%B0&value=100866' # 需要导入 from django.http import QueryDict,QueryDict(request.body)} 处理下 # 更新数据:需要告知是具体更新哪一条数据 # 获取要更新哪条数据的主键id p_id = request.PUT.get('id') print('p_id',p_id) # 通过id 从数据库中取这条数据 obj data_obj = self.model.objects.get(id=p_id) # 第一个参数:前端传过来的数据 # 第二个参数(instance):数据库获取的,要更新的对象 form_obj = self.form(request.PUT, instance=data_obj) if form_obj.is_valid(): # 通过 form中的save方法进行数据更新 form_obj.save() return NbResponse() # return JsonResponse({"code": 200, "msg": "put接口数据更新成功"}) else: return NbResponse(code=500,msg=form_obj.errors.get_json_data()) middle_wares.py class PutMethodMiddleware(MiddlewareMixin): def process_request(self, request): # 请求过来之后,先走到这里 if requesthod == 'PUT': request.PUT = QueryDict(request.body)

分析:因Django中没有PUT 方法,是我们在 middle_wares.py 中分装了后实现的PUT 方法,所以我们就需要看下【QueryDict(request.body)】返回的是什么:

class PutMethodMiddleware(MiddlewareMixin): def process_request(self, request): # 请求过来之后,先走到这里 if requesthod == 'PUT': print('QueryDict(request.body)===',QueryDict(request.body)) request.PUT = QueryDict(request.body)

结果:

QueryDict(request.body)===

我们可以发现数据格式并不是我们以往的那样,我就需要回到前端中查看下【Request Headers】中的信息:

 Content-Type发生了变化,所以传过来的数据也发生了变化,所以后端代码就需要把代码进行调整,兼容这种传递的方式

查验源码后,进行调整:

class PutMethodMiddleware(MiddlewareMixin): @staticmethod def process_request(self, request): # 请求过来之后先走到这里,然后再去请求视图 if requesthod == 'PUT': if 'boundary' in request.content_params.kes(): put_data,files = request.parse_file_upload(request.MEAT,request) request.PUT = put_data request._files = files # 是因为request.FILES 里面取值的时候,就是_files else: request.PUT = QueryDict(request.bady)

已可正常修改无报错:

 

 

本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/17300627.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3