无法向django视图发送ajax json post请求

时间:2015-07-26 10:32:10

标签: python ajax django

我正在尝试使用ajax发送json

Ajax:

$.ajax({
                 type:"POST",
                 url:"../create_folder/",
                 data: {
                        //csrfmiddlewaretoken: "{{ csrf_token }}",
                        sharedfolder // from form
                        },
                        contentType: "application/json",
    dataType: "json",
    success: function(data) {
        debugger;
        $("#folder_create").dialog('close');
        $("#folder-details").pqGrid("refreshDataAndView" );
    },
    error: function(data){
        debugger;
        alert("fail");

            }
        });
            return false;

观点:

@csrf_exempt
def create_folder(request):
  c = {}
  c.update(csrf(request))
  data = request.POST["sharedfolder"]
  print type(data)
  return HttpResponse(sf,content_type="application/type")

我收到此错误:

  

/ create_folder /"'共享文件夹'"'''''请求   方法:GET请求URL:http://localhost:8000/create_folder/ Django   版本:1.6.1异常类型:MultiValueDictKeyError异常   价值:"' sharedfolder'"例外   位置:/usr/local/lib/python2.7/dist-packages/django/utils/datastructures.py   在 getitem 中,第301行Python可执行文件:/ usr / bin / python Python   版本:2.7.6 Python路径:
  [' / home / celestial / Documents / celestial_NAS',' /usr/lib/python2.7',   ' /usr/lib/python2.7/plat-x86_64-linux-gnu' ;,   ' /usr/lib/python2.7/lib-tk' ;,' /usr/lib/python2.7/lib-old',   ' /usr/lib/python2.7/lib-dynload' ;,   ' /usr/local/lib/python2.7/dist-packages' ;,   ' /usr/lib/python2.7/dist-packages' ;,   ' /usr/lib/python2.7/dist-packages/PILcompat' ;,   ' /usr/lib/python2.7/dist-packages/gtk-2.0' ;,   ' /usr/lib/python2.7/dist-packages/ubuntu-sso-client']服务器   时间:2015年7月26日星期日10:30:24 +0000

什么可能是错误的?

3 个答案:

答案 0 :(得分:0)

您似乎没有正确地将sharedfolder参数传递给AJAX脚本,因此当您尝试使用data = request.POST["sharedfolder"]访问它时,您会收到Key Exception错误。

通常在AJAX调用中使用data属性时,您将使用键值对,例如

sharedfolder: sharedfoldervalue

从表单提交中获取sharedfoldervalue

答案 1 :(得分:0)

好像你没有通过AJAX发帖。我的意思是你的追溯中有GET个请求。所以request.POST将是{}。这就是为什么你得到这个错误。检查

<form >
whatever
<button type="submit"> or even no type attribute
</form>

将上述内容更改为

<button type="button">

答案 2 :(得分:0)

几天前我收到了这个错误。

使用request.POST [“sharedfolder”]

的request.POST.get(“sharedfolder”)