所以基本上我想在 python 函数中使用一个 JS 字符串变量,然后将它返回给一个 JS 变量。我假设最好的方法是通过 Json/ajax?
首先,我有一个 html 元素,其中放置了一个字符串。
<h2 id="output"></h2>
我的计划是从 HTML 中提取该值(如下面的 AJAX 语句所示):
var word = $("#output").val();
并使用 AJAX 将其发送到后端以供 python 脚本检查该单词是否是真正的英语单词(返回 true/false)。
使用我拥有的 AJAX 代码,我不断返回一个未定义的变量。
这是AJAX代码:
$(document).ready(function() {
$('#submit_word').click(function() {
var word = $("#output").val();
$.ajax({
url: '{% url 'wordgame' %}', //not sure
type: 'POST',
dataType: 'json',
data: {word:word, csrfmiddlewaretoken: "{{ csrf_token }}",},
success: function(response) {
var word_result = JSON.parse(response.result);
console.log(response.result);
$("#check-word").text(word_result);
},
error: function(response) {
console.log(response.result);
}
});
});
});
还有我的观点功能:
def fetch_word(request):
word = request.POST.get('word')
result = check_if_word_in_dictionary(word)
return JsonResponse({'result': result})
每当我单击按钮时,它都会执行我的 ajax 语句的“错误”部分:
error: function(response) {
console.log(response.result);
}
在控制台打印'undefined'。我是 ajax/django 的新手,所以我认为这只是一个语法错误,但我花了太多时间试图弄清楚这个问题:(
更改函数参数中对数据的响应字样,然后重试。那是因为jquery中没有响应,是数据https://api.jquery.com/jquery.ajax/
例子
$.ajax({
url: '{% url 'wordgame' %}', //not sure
type: 'POST',
dataType: 'json',
data: {word:word, csrfmiddlewaretoken: "{{ csrf_token }}",},
success: function(data) {
var word_result = data);
console.log(data.result);
$("#check-word").text(word_result);
},
error: function(data) {
console.log(data);
}