繁体   English   中英

将数据从angularjs发送到django

[英]sending data from angularjs to django

我正在使用Angularjs及其$ http模块向Django服务器发送POST AJAX请求。 这是一个例子:

$http({ 
        method: 'POST', 
        url: '/url/', 
        data: 'test data'
  }).
  success(function(data, status, headers, config) {
        doSomeStuffWhenSuccess();
  });

问题是我在Django中得到的。 无论我发送什么数据总是QueryDict对象的关键,它的值始终是一个空列表。

<QueryDict: {u'test data': [u'']}>

我不知道为什么。 我错过了什么?

我使用几乎默认创建的Django应用程序只使用默认中间件。 我只创建了一个视图并在url config中设置了一个url。 Django的版本是1.3。 我配置angular的$ http模块总是发送一个包含csrf令牌的头来满足Django。

我用jQuery param函数解决了这个问题。 我认为这是更优雅的解决方案。

$http({ 
    method: 'POST', 
    url: '/url/', 
    data: $.param({test: data})
})

现在它像我想要的那样工作。

我相信django认为你正在发送一个urlencoded形式,例如。 键=值键2 =值...

如果你尝试:

$http({ 
    method: 'POST', 
    url: '/url/', 
    data: 'test=data'
})

你应该得到

<QueryDict: {u'test': [u'data']}>

您始终可以按如下方式获取数据(原始内容):

request.body

希望这是你正在寻找的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM