Python 通过POST方法发送数据以在AJAX请求中显示
要发布并将字符串传递给views.py,views.py中的post方法可以从Ajax接收值,但我无法在Ajax成功方法中获得要打印的结果值 我试图返回HTTPresponse、重定向和渲染,但似乎没有任何效果 //阿贾克斯//Python 通过POST方法发送数据以在AJAX请求中显示,python,django,ajax,django-class-based-views,Python,Django,Ajax,Django Class Based Views,要发布并将字符串传递给views.py,views.py中的post方法可以从Ajax接收值,但我无法在Ajax成功方法中获得要打印的结果值 我试图返回HTTPresponse、重定向和渲染,但似乎没有任何效果 //阿贾克斯// $("#viewData").click(function(event){ $.ajax({ type: "POST", data: {
$("#viewData").click(function(event){
$.ajax({
type: "POST",
data: {
tempData : "permView",
csrfmiddlewaretoken: '{{ csrf_token }}',
},
success: function(result) {
console.log('{{ result }}')
},
});
event.preventDefault()
});
});
//Python//views.py
class SpreadSheetView(TemplateView):
template_name = 'spreadsheet.html'
def get(self, request, *args, **kwargs):
return render(request, self.template_name, {'type': '86'})
def post(self, request):
if request.POST['tempData'] == 'permView':
return render(request, self.template_name, {'result': "test result"})
您遇到以下两个问题之一:
dataType
参数,这会导致ajax错误地猜测您的响应类型$.ajax({
type: "GET",
dataType : 'html', # or other types, depending on your needs.
data: {
tempData : "permView",
csrfmiddlewaretoken: '{{ csrf_token }}',
},
success: function(data, status) {
console.log(data)
console.log(status)
},
error: function(xhr, status, error) {
console.log(status);
console.log(error);
}
});
是否有内容打印到控制台?每次单击按钮时,console.log都会打印空白值。我已经更新了代码,但没有遇到错误,控制台只打印空值。我注意到您的ajax请求不包含
url
参数。您确定您的视图成功接收到请求吗?视图通过验证tempData字符串成功接收请求,因为它进入了if函数。我已更新了代码,但它只打印了一个空行,然后在下一行中打印了“success”。这意味着您的响应正在输入success
函数,但没有数据。您必须确保响应中预期的数据类型
正确,并且在视图中返回有效的响应。