相关疑难解决方法(0)

从Django中的表单发送DELETE请求

我正在尝试从Django中的表单发送DELETE请求,从jQuery获取帮助,请参阅下面的链接;

https://baxeico.wordpress.com/2014/06/25/put-and-delete-http-requests-with-django-and-jquery/

我所拥有的是以下脚本;

<script src="jquery-1.11.3.js"></script>

<script>
  $(document).ready(function(){
    $.ajax({
      id : 'delete',
      headers : {'X_METHODOVERRIDE': 'DELETE'}
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

(我打算)以下列形式行事;

<form method="post" id="delete" name="delete" action="">
  {% csrf_token %}
  <input type="submit" value="Delete" />
</form>
Run Code Online (Sandbox Code Playgroud)

以及中间件;

from django.http import QueryDict

class HttpPostTunnelingMiddleware(object):
    def process_request(self, request):
        if request.META.has_key('HTTP_X_METHODOVERRIDE'):
            http_method = request.META['HTTP_X_METHODOVERRIDE']
            if http_method.lower() == 'put':
                request.method  = 'PUT'
                request.META['REQUEST_METHOD'] = 'PUT'
                request.PUT = QueryDict(request.body)
            if http_method.lower() == 'delete':
                request.method  = 'DELETE'
                request.META['REQUEST_METHOD'] = 'DELETE'
                request.DELETE = QueryDict(request.body)
        return None        
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的settings.py中的MIDDLEWARE_CLASSES列表中;

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', …
Run Code Online (Sandbox Code Playgroud)

django jquery

5
推荐指数
1
解决办法
4228
查看次数

标签 统计

django ×1

jquery ×1