我送使用Angularjs和$ HTTP模块Django的服务器POST AJAX请求。下面是一个例子:
I am sending a POST AJAX request using Angularjs and its $http module to Django server. Here is an example:
$http({
method: 'POST',
url: '/url/',
data: 'test data'
}).
success(function(data, status, headers, config) {
doSomeStuffWhenSuccess();
});
现在的问题是我所得到的Django的。不管是什么我发送的数据始终的QueryDict
目标和价值的关键,就是始终空列表。
The problem is what I get in Django. No matter what I send the data is always the key of QueryDict
object and value of that is always an empty list.
<QueryDict: {u'test data': [u'']}>
我没有线索,为什么。我在想什么?
I don't have a clue why. What am I missing?
我使用几乎默认创建的Django应用程序,只有默认的中间件。我创建只是一个视图,设置在URL配置的URL。 Django的版本是1.3。我配置的角度的$ HTTP模块始终发送一个头containg CSRF令牌来满足Django的。
I use almost default created Django application with default middlewares only. I created only a view and set an url in url config. Version of Django is 1.3. And I configured angular's $http module to always send a header containg csrf token to satisfy Django.
我解决了这个用jQuery参数的功能。我认为这是更好的解决方案。
I resolved this with jQuery param function. I think it's more elegant solution.
$http({
method: 'POST',
url: '/url/',
data: $.param({test: data})
})
现在它的工作原理是我想要的。
Now it works like I wanted.