Javascript Jquery将空数据发送到Django

Javascript Jquery将空数据发送到Django,javascript,jquery,django,django-views,python-3.6,Javascript,Jquery,Django,Django Views,Python 3.6,信息:我正在使用python 3.6和Django 1.10.6 我试图发送一个简单的dict来更改我的页数,但我不使用表单。因此,当他们使用XMLHttpRequest时,我阅读了很多教程,这是很有用的。但在我的情况下,我只收到一个空的查询 Template.html: 您选择页面{{page} $('ul.pagination li a')。在('click',函数(e)上{ e、 预防默认值(); var val={ 'page':$(this.attr('value')

信息:我正在使用python 3.6和Django 1.10.6

我试图发送一个简单的dict来更改我的页数,但我不使用表单。因此,当他们使用
XMLHttpRequest
时,我阅读了很多教程,这是很有用的。但在我的情况下,我只收到一个空的查询

Template.html:

您选择页面{{page}

$('ul.pagination li a')。在('click',函数(e)上{ e、 预防默认值(); var val={ 'page':$(this.attr('value'), } var page=new XMLHttpRequest(); xhr.open('POST','/index/',true); setRequestHeader(“内容类型”,“应用程序/json;字符集=utf-8”); setRequestHeader('X-CSRFToken','{{csrf_token}}'); xhr.send(val); })
Views.py:

当我显示我的控制台时,我总是有空查询,所以这是正常的
page=0

控制台日志:

[TEST] <QueryDict: {}> 0
[TEST]0
I当通过点击
a

来接收像
{'page':'1'}
这样的dict时,您的问题是因为接受许多数据类型,但它不接受对象

您可以通过提供字符串来解决问题:

var val = 'page=' + $(this).val();
请注意此处首选的
val()

或者,如果要将值作为JSON发送,则需要手动将其字符串化:

var val = JSON.stringify({ page: $(this).val() });

可以像dict一样格式化发送的数据?任何事情都有可能,但您需要发送的格式取决于您的模型绑定器期望的格式。JSON将是完美的。很好的解释,您是对的。
.val()
.attr('value')
更实用
var val = JSON.stringify({ page: $(this).val() });