django关于ajaxSend ......我到底在哪里?

时间:2012-06-12 14:33:54

标签: django

我在哪里放置我在这里找到的ajaxSend代码:

https://docs.djangoproject.com/en/1.2/ref/contrib/csrf/#ajax

我的意思是,我有一个基本的htm文件有一个部分,看起来有点像这样:

<script>
    $(function() {
        $("#loginThing").click(function(){
            ... and then i define buttons to be pressed etc etc
    });
</script>
那么什么?我把代码放在$ {function(){})之上;调用(但在脚本标签中)?我把放在函数调用中吗?我是否必须改变它 - 它的方式,或许 - 以任何形式或形式?

我把它放在$(function())调用之上(但在脚本标记中),但它不像我的ajax调用表现得有所不同。事实上,我没有最模糊的概念如何测试这是否正在做任何事情。我没有使用任何测试代码(我知道,很糟糕。但这是一个学习进步。另外,我不喜欢测试代码)。有什么方法可以“手动”测试吗?比如,只使用firefox吗?

1 个答案:

答案 0 :(得分:1)

  

我在哪里放置ajaxSend代码

它只需要超出你现在的功能定义。

<script>
    $(function() {
        $("#loginThing").click(function(){
            // ... and then i define buttons to be pressed etc etc
    });

    $(document).ajaxSend(function(event, xhr, settings) {
        // ... Rest of function goes here
    });
</script>
  

有什么方法可以“手动”测试吗?比如,只使用firefox吗?

我无法告诉你如何在Firefox中测试它,因为我不使用它。但是,Chrome有一个内置的界面,非常适合这种情况。

在Chrome中打开您的页面并点击Command-Option-I(在Mac上,Windows可能类似)。转到“网络”选项卡。在最左侧的列中,您应该看到POST请求的URL。点击它。它将为您提供探索所需的所有详细信息,Cookie(查找csrftoken以确保页面中存在Django的csrf cookie),请求和响应标头等。

  

它不像我的ajax调用行为有任何不同。事实上,我没有最模糊的想法如何测试这是否正在做任何事情。

他们应该是,你只是不能“看到”它。使用上述Chrome工具查看与服务器的通信。确认它“正在做任何事情”:

  1. 删除刚刚从Django网站添加的javascript代码
  2. 对受csrf保护的表单执行AJAX POST
  3. 请注意,POST失败