Django公司请求.is_ajax()返回fals

2024-04-20 00:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题并不新鲜,不过我已经花了很多时间,但还是没能解决。在

<form id="test_data_form" action={% url 'insert_test_data' %} method="post">{% csrf_token %}
        <input type="submit" value="Insert test data">
        <div id="message"></div>
    </form>
    <script type="text/javascript">
        var form = $("test_data_form");
        $(document).ready(function() {
                    form.submit(function() {
                                $.ajax({
                                         data: form.serialize(),
                                         url: form.attr('action'),
                                         cache: false,
                                         type: form.attr('method'),
                                         dataType:'json',
                                         success: function(response) {
                                             alert("1");
                                         },
                                         error: function() {
                                             alert('Error!');
                                         }
                                        }
                                );
                                return false;
                            }
                    );
                }
        );
    </script>

在视图.py 在

^{pr2}$

在网址.py在

url(r'^hello/insert_test_data/$', insert_test_data, name="insert_test_data"),

首先,我发现并没有捕捉到成功,所以在调试时我发现django并不认为这是ajax请求,并将我重定向到另一个页面:/insert\u test_data。我想呆在主页上。在

我已经找到了很多关于这个问题的建议(例如cache:false),但是没有一个有用。我同意,我错过了一些显而易见的东西,但不知道到底是什么。 如果有人帮忙,我会很高兴的。在


Tags: testdivformidfalseurldatatype
1条回答
网友
1楼 · 发布于 2024-04-20 00:14:05

第一次检查时,处理表单提交的JavaScript看起来不错,但有一个错误:

var form = $("test_data_form");

如果您使用Firebug或Chrome开发工具并在控制台中查询此元素,那么您将无法获得任何内容,因为您缺少选择器(标记、id、类等)。从您的表单标签中,我想您是想通过id选择:

^{pr2}$

相关问题 更多 >