gpt4 book ai didi

javascript - 无法从 JQUERY 将 JSON 数据发送到 python

转载 作者:行者123 更新时间:2023-12-03 02:05:43 26 4
gpt4 key购买 nike

我正在尝试在 Flask-python 中构建一个聊天机器人,它需要与 javascript 交互以连接到 URL 来获取数据。

我能够从 javascript 向 Python 发送和接收字符串,但现在当我尝试从 javascript 向 python 发送 JSON 数据时遇到问题。

我尝试了多种方法,例如在 JS 中使用 ajax 调用和在 python 中使用 request.json 但未能成功。

下面是我使用发送字符串的代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
function getBotResponse(rawText) {
$.getJSON('https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/', {q: rawText},
function(jsndata) {
var intent = jsndata.topScoringIntent.intent;
}
$.get("/get", { intt: intent }).done(function(data)
{
$('<div class="botText">'+data+'</div>').insertBefore('.msg_push');
$('.chat_body').scrollTop($('.chat_body')[0].scrollHeight);
}
);
}
);
}
</script>

下面是接收字符串并返回答案的Python代码:

from flask import Flask, render_template, request
@app.route("/get")
def get_bot_response():
jsondata = request.args.get('intt')
print(type(jsondata))
print(jsondata)

这工作正常,但是当我尝试以相同的方式发送 json 时,我收到类似 Internal Server Error 的错误,当我尝试 ajax 时,它说 BAD Request

如何通过变量将 json 数据从 javascript 发送到 python?

注意:我熟悉在 python 中使用 urllib request/https requests 方法来连接到 URL 并获取 json 数据,但我公司的政策不允许这样做,所以需要找到某种方法可以从 javascript 发送数据。

最佳答案

您会遇到这个问题,因为 $.get(..., { intt: XXX }) 需要一个字符串来代替 XXX,而不是一个对象。

解决这个问题最简单的方法是使用 JSON.stringify :

{ intt: JSON.stringify(intent) }

然后用Python从字符串中解析JSON

当然,更好的方法是 POST JSON,而不是将其作为 URL 查询传递。 URL 查询可以有长度限制和速度限制。

关于javascript - 无法从 JQUERY 将 JSON 数据发送到 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49814863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com