【发布时间】:2018-04-13 10:27:52
【问题描述】:
我正在尝试在 Flask-python 中构建一个聊天机器人,它需要与 javascript 交互以连接到 URL 以获取数据。
我能够从 javascript 向 Python 发送和接收字符串,但现在我在尝试将 JSON 数据从 javascript 发送到 python 时遇到问题。
我尝试了多种方法,例如在 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 请求/https 请求方法来连接到 URL 并获取 json 数据,但我公司的政策不允许这样做,所以需要找到一些方法可以从 javascript 发送数据。
【问题讨论】:
-
你导入jquery两次,删除一个链接试试
-
您可以将其字符串化并发送,在另一端进行解析。
标签: javascript python jquery json flask