Django DRF工作,但将错误返回给AJAX调用



我已经在DRF中成功地实现了对PUT的AJAX请求一切正常,但AJAX中的错误回调被触发:

drf部分:

class ProductDataViewSet(viewsets.ViewSet):
authentication_classes = [SessionAuthentication,]
permission_classes = [IsAuthenticated,]
serializer_class = ProductSerializer
def put(self, request):
...
return Response(data = "OK", status = status.HTTP_200_OK)

AJAX部分:

let write2db = function ( data ) {

let csrf_token = $('[name="csrfmiddlewaretoken"]').attr('value');
$.ajax({ url: "api/products/",
type: "PUT",
data: JSON.stringify(data),
dataType: "string",
headers: { 'X-CSRFTOKEN': csrf_token,
"Content-type": "application/json"  },
success: function (request, status, error) {
console.log(request, "--", status, "---", error)
window.location = "/pe/?message=success&status=success"; 
},
error: function ( request, status, error ) { 
window.location = `/pe/?message=${error} - ${request.responseText}&status=danger`; 
}
});
};

使用此JSON:时

data = {'number': '2', 'data': {'name': 'brand new', 'price': '2.4'}}

在控制台中我得到:

"得到/pe/?message=没有%20从%20文本%20到%20字符串%20的%20转换%20产品%20更新%22&status=危险HTTP/1.1";200 8188

short:

没有从文本到字符串的转换。

dataType: "string",但您返回的是JSON。dataType指的是您想要的响应格式。您的错误看起来可能被响应格式捕获。

尝试设置dataType: 'json'

最新更新