我一直在挑剔这个问题,尽管我想我会寻求一些建议,如果可以的话,我对AJAX相当陌生。
是的,我正在使用 django 框架,我将数据发布到服务器,效果很好,然后在回调函数上接收一些数据,这有效,尽管我希望它是 JSON 格式,以便我可以填充一个表。目前,它要么以纯文本呈现,要么浏览器要求我下载 json 数据,这意味着 $.get 部分的内容不太吸引人。我的代码是:
#views.py
if request.POST:
est_show = login_a.test()
return HttpResponse(est_show, content_type='application/json')
<!--JQUERY/AJAX-->
<script type="text/javascript">
$(document).on("submit","#these_choices",function (event) {
var data_form = $('#these_choices').serialize();
if(data_form) {
$.ajax({
type: "POST",
url: "{% url Create_this %}",
data: {'test':'test','csrfmiddlewaretoken': '{{ csrf_token }}'},
cache:false,
success: function(){
jQuery(document).ready(function ($) {
$.get('{% url Create_this %}', function(data) {
alert(data[0]);
});});
},
error: function(){
alert('error !!!!');
}
});}
else {
alert('error elsewhere');
}
event.defaultPrevented(); //not running PreventDefault returns json using defaultPrevented returns json and doesnt render anything when this is blanked out...
return false;
});
</script>
在浏览器中接收 json 数据之前,警报(data[0])似乎正在运行。任何建议将不胜感激?
非常感谢
尝试将HttpResponse
中的mimetype
设置为 application/json
。 当您未在 ajax 请求中指定dataType
时,JQuery 会自动尝试根据响应的 mimetype 推断它。
return HttpResponse(est_show, mimetype='application/json')
或者,您可以将dataType
设置为 json
,以告诉 JQuery 需要 json。