我想用 axios(VueJS) 發送 POST 請求,當 Django 服務器收到 POST 請求時,我想取回該請求訊息。我在 Django 服務器中收到 POST 請求時嘗試了 make 函式,然后回傳 JsonResponse({"response": "got post request"), safe=False)
JS函式
sendMessage() {
axios({
method: "POST",
url: url,
data: this.message
})
.then(response => {
this.receive = response;
})
.catch(response => {
alert('Failed to POST.' response);
})
}
}
視圖.py
from chat.serializer import chatSerializer
from chat.models import *
from rest_framework.routers import DefaultRouter
from rest_framework import viewsets
from django.http import JsonResponse
from django.views.generic import View
# Create your views here.
class get_post(View):
def post(self, request):
if request.method == 'POST':
JsonResponse({"response": 'got post request'}, safe=False)
但是錯誤在 django 中是這樣說的
Internal Server Error: /api/chat/
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line
47, in inner
response = get_response(request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 188,
in _get_response
self.check_response(response, callback)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 309,
in check_response
raise ValueError(
ValueError: The view chat.views.views.get_post didn't return an HttpResponse object. It returned None instead.
[26/Oct/2022 17:06:51] "POST /api/chat/ HTTP/1.1" 500 60946
我認為 POST 請求作業正常,但 Django 代碼有問題。
因此,我的問題是..
- 如何修復和解決此錯誤?
- 當我在 JS 中呼叫 axios 時,在 '.then' 中我們得到了一個回應,那么哪些資料來自這個變數?我應該像 Response() 或 JsonResponse() 方法一樣回傳這些資料嗎?
uj5u.com熱心網友回復:
只需在視圖中添加一個回傳......就像這樣:
class get_post(View):
def post(self, request):
if request.method == 'POST':
return JsonResponse({"response": 'got post request'}, safe=False)
因為錯誤抱怨 post 函式必須回傳任何內容。
對于第二個問題,您需要回傳 JsonResponse,因為您正在處理 API。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521069.html
下一篇:更改Vue中的網格列
