![](/img/trans.png)
[英]I'm using vanilla js to make a ajax post request to django
[英]Send AJAX request to Django view with vanilla JS
我正在尝试使用香草JS向Django视图发送GET
AJAX请求。 is_ajax()
通过,但是我无法正确检索请求对象。
这是我的JS代码。 有/无JSON.stringify(data)
不起作用。
document.querySelector('#testForm').onsubmit = () => {
let data = {category : 'music'};
const request = new XMLHttpRequest();
request.open('GET', 'test/', true);
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
request.onload = () => {
const data = JSON.parse(request.responseText);
console.log(data);
}
request.send(data);
return false;
});
这是我的Django视图:
def test(request):
if request.is_ajax():
print('Yes!')
data = {'category': request.GET.get('category', None)}
return JsonResponse(data)
else:
raise Http404
它打印Yes!
到终端,但我在控制台中返回了{category: null}
。
此JQuery代码有效,我得到了预期的{category: "music"}
响应:
$.ajax({
url: 'cart/',
type: 'GET',
data: data,
dataType: 'json',
success: function (data) {
console.log(data);
}
});
我想知道香草JS代码或Django视图中缺少什么。
GET请求不能具有主体,因此request.send
的data
参数将被忽略。 您应该使其成为URL本身的一部分:
request.open('GET', 'test/?category=music', true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.