相关疑难解决方法(0)

Django CSRF检查失败,出现Ajax POST请求

我可以通过我的AJAX帖子使用一些符合Django的CSRF保护机制的帮助.我按照这里的指示:

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/

我已经完全复制了他们在该页面上的AJAX示例代码:

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

getCookie('csrftoken')xhr.setRequestHeader打电话之前打印了一个警告打印内容,确实填充了一些数据.我不确定如何验证令牌是否正确,但我鼓励它发现并发送一些东西.

但是Django仍然拒绝我的AJAX帖子.

这是我的JavaScript:

$.post("/memorize/", data, function (result) {
    if (result != "failure") {
        get_random_card();
    }
    else {
        alert("Failed to save card data.");
    }
});
Run Code Online (Sandbox Code Playgroud)

这是我从Django看到的错误:

[23/Feb/2011 22:08:29]"POST/memorize/HTTP/1.1"403 2332

我确定我错过了一些东西,也许这很简单,但我不知道它是什么.我一直在搜索SO,并看到一些关于通过csrf_exempt装饰器关闭CSRF检查我的视图的信息,但我发现它没有吸引力.我已经试过了,但它确实有效,但我宁愿让我的POST以Django的设计方式工作,如果可能的话.

为了防止它有用,这里是我的观点的主旨:

def myview(request):

    profile = request.user.profile

    if request.method == 'POST':
        """
        Process the post...
        """
        return HttpResponseRedirect('/memorize/')
    else: # request.method == 'GET'

        ajax = request.GET.has_key('ajax')

        """
        Some irrelevent code...
        """

        if ajax:
            response = HttpResponse()
            profile.get_stack_json(response)
            return response
        else:
            """
            Get …
Run Code Online (Sandbox Code Playgroud)

python django ajax csrf

175
推荐指数
10
解决办法
14万
查看次数

jQuery $ .cookie不是一个函数

我正在尝试使用jQuery设置cookie:

$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
Run Code Online (Sandbox Code Playgroud)

但是当我加载页面时,我收到错误"$ .cookie不是函数".这就是我所知道的:

  • 在这里下载了jQuery cookie插件.
  • 我链接到jQuery和那个cookie插件.
  • jQuery和jQuery.cookie都正确加载200 OK.

我已经看过其他几个答案(这里这里等),对大多数人建议重命名cookie.js文件,该文件.我已将我的cookie文件重命名为"jquery.cookeee.js",但结果是一样的.

关于这里发生了什么的任何想法?

如果它有帮助,我在MVC 4中创建一个Web应用程序.

javascript cookies asp.net-mvc jquery

73
推荐指数
3
解决办法
16万
查看次数

如何使用Django和AngularJS创建POST请求(包括CSRF令牌)

我正在尝试使用angular.js创建一个POST请求到这个Django视图.

class PostJSON4SlickGrid(View):
    """
    REST POST Interface for SlickGrid to update workpackages
    """

    def post(self, request, root_id, wp_id, **kwargs):
        print "in PostJSON4SlickGrid"
        print request.POST
        return HttpResponse(status=200)
Run Code Online (Sandbox Code Playgroud)

因此我创建了这个资源.

myModule.factory('gridData', function($resource) {
    //define resource class
    var root = {{ root.pk }};
    return $resource('{% url getJSON4SlickGrid root.pk %}:wpID/', {wpID:'@id'},{
            get: {method:'GET', params:{}, isArray:true},
            update:{method:'POST'}
    });
});
Run Code Online (Sandbox Code Playgroud)

在控制器中调用get方法可以正常工作.该网址被翻译为http://127.0.0.1:8000/pm/rest/tree/1/.

function gridController($scope, gridData){
    gridData.get(function(result) {
        console.log(result);
        $scope.treeData = result;
        //broadcast that asynchronous xhr call finished
        $scope.$broadcast('mySignal', {fake: 'Hello!'});  
    });
}
Run Code Online (Sandbox Code Playgroud)

我正面临执行更新/ POST方法的问题. …

django post angularjs

23
推荐指数
2
解决办法
3万
查看次数

JQuery + AJAX + Django = CSRF?

可能重复:
"CSRF令牌丢失或不正确",而在Django中通过AJAX发布参数

我想通过AJAX发送登录数据来验证用户身份,但由于CSRF,这是不可能的.你能告诉我在我的代码中添加什么来让它变得更好吗?

我的JavaScript文件:

$("#login").live("click", function() {
    var username = $(".login_username").val();
    var password = $(".login_password").val();

    $.ajax({
        url: "/login",
        type: "POST",
        data: {
            username: username,
            password: password
        },
        cache: false,
        success: function(tekst) {
            alert(tekst);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript django ajax csrf-protection

14
推荐指数
1
解决办法
3万
查看次数

如何将图像添加到django中的帖子中

我正在构建一个博客系统,允许用户将图像添加到他们的博客中.

当用户添加图片时,图片会自动上传,这发生在博客发布之前,那么我应该如何处理上传的图片,这些图片有点像临时图片,因为如果用户发布博客,这些图片会有此博客的外键,并保存到某个文件夹中,但如果用户丢弃该博客,则应删除这些临时图像.

问题是如何在博客实际发布时获得首次上传的图片?我应该在哪里存储这些临时图像?如何判断用户是否放弃了博客?

django post image-uploading temporary-files

4
推荐指数
1
解决办法
6003
查看次数

禁止(CSRF令牌丢失或不正确)Django错误

我是Django的新手.我的项目名称是rango,我创建了一个名为'/ rango/tagger'的URL,它应该发送一个对象.

在我的java脚本中,我尝试通过向它发送ajax请求来与此路由进行通信,如下所示:

function send()
{
  obj = {content:$("#content").val()};
  $.post('/rango/tagger',obj,function(data){
    console.log(data);
  })
}
Run Code Online (Sandbox Code Playgroud)

我在我的模板中添加了{%csrf_token%}.但是,它给我的错误如下:

Forbidden (CSRF token missing or incorrect.): /rango/tagger
[31/Jan/2016 09:43:29] "POST /rango/tagger HTTP/1.1" 403 2274
Run Code Online (Sandbox Code Playgroud)

我在views.py中的函数标记器如下:

def tagger(request):
return render(request,'rango/index.html',RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

我也在我的网址模式中定义了它.我怀疑我的函数标记器返回了一个不正确的值或数据(根据其他SO解决方案从HttpResponse(请求)更改为上面的行).

但是,它似乎对我不起作用.我哪里错了?

python django django-csrf cors

4
推荐指数
1
解决办法
7760
查看次数

Django - 如何将 javascript 变量保存到 Django 数据库中?

我有一个名为“counter”的 javascript 变量,我想用它来更新在 models.py 中实例化的计数器变量。

这是models.py的快照

class Player(BasePlayer):
    #track the number of times the user has lost window focus
    blur_quantity = models.IntegerField(initial=0) 
Run Code Online (Sandbox Code Playgroud)

这是 pages.html 的示例

{% block content %}
<button name="blur_button" value=counter onclick="Warn()" class="btn btn-primary btn-large">Blur Button</button>


{% endblock %}
{% block scripts %}
    <script>
        var counter  = 0;
       // Tracks window blurs
       $( document ).ready(function() {
          function onchange (evt) {
            counter++;
            console.log(counter);
          }

          window.onblur = onchange;

        });  

        function Warn() {
            alert(counter);
        }
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在,每当用户单击按钮时,“计数器”的值都应该存储在某处。如何更新models.py(例如我的Django 数据库)中的blur_quantity 值以反映附加到blur_button …

python django

2
推荐指数
1
解决办法
4594
查看次数