【发布时间】:2021-01-06 16:29:41
【问题描述】:
我正在尝试以下要求,其中有一个语音合成器,它将我的声音(这是一个问题)转换为文本,并通过 Ajax 将该文本发送到后端 Django。
在后端,Django 获取该数据并使用该数据(问题)访问数据库并获取结果并将该结果发送到应该被 Ajax 的成功部分捕获的前端。但它不起作用。
我无法弄清楚问题出在哪里。我在下面发布 Ajax 和 Django 代码供您参考。
views.py
def GetAnswer(request):
if request.method=='GET' and request.is_ajax():
question_asked=str(request.GET.get("message_now"))
try:
answer=QuestionAnswer.objects.filter(question=question_asked).value_list('answer', flat=True)[0]
print(answer)
data={"data":answer}
return JsonResponse({"success": True}, data, status=200)
except:
return JsonResponse({"success": False}, status=400)
else:
print("Not Suceess")
main.js
function chatbotvoice(message) {
const speech = new SpeechSynthesisUtterance();
if (message !== null && message !== '') {
$.ajax({
url: "http://127.0.0.1:8000/getanswer",
type: 'GET',
data: {
message_now: message
},
success: function (data) {
speech.text = JSON.parse(data);
window.speechSynthesis.speak(speech);
chatareamain.appendChild(showchatbotmsg(speech.text));
},
error: function (error) {
speech.text = "Oh No!! I don't Know !! I am still learning!! Your question got recorded and answer for your question will be available with me in 24 hours";
window.speechSynthesis.speak(speech);
chatareamain.appendChild(showchatbotmsg(speech.text));
},
});
}
}
我尝试检查 Ajax 请求是否到达函数,并且我能够在后端查看变量“question_asked”的值。
【问题讨论】:
-
终端显示什么错误
-
我收到错误为“错误请求:/getanswer/”
-
显示url.py的代码
-
urlpatterns = [ path('', views.QuestionAnswer, name='QuestionAnswer'), path('getanswer/', views.GetAnswer, name = 'getanswer'), ]+ static(settings .STATIC_URL, document_root=settings.STATIC_ROOT)
标签: javascript jquery django ajax django-views