gpt4 book ai didi

javascript - 我无法解决这个 "parsererror"ajax 错误

转载 作者:行者123 更新时间:2023-12-01 00:42:57 26 4
gpt4 key购买 nike

我目前正在使用 django 进行 ajax。但是,响应会引发错误。

我使用 ajax 向 View 发送请求并创建模型。现在我们已经准备好创建了。我觉得返回 View 有问题。

我收到的错误消息

fail 200
(index):150 parsererror
(index):151 SyntaxError: Unexpected token a in JSON at position 0
at parse (<anonymous>)
at Ut (jquery-3.3.1.min.js:2)
at k (jquery-3.3.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)

JavaScript 代码 (jquery)

$('form').on('submit', function(e){
let $submit_input = $(this).find('input')
let $data = $(this).data('group')
console.log($data);

e.preventDefault();

$.ajax({
'url': "{% url 'groups:ajax_post_add' %}",
'type': 'POST',
'data': {
'group': $data,
csrfmiddlewaretoken: '{{ csrf_token }}',
},
'dataType': 'json',
beforeSend: function(xhr, settings) {
$submit_input.attr('disabled', true);
}
}).then((...args) => { // done
const [data, textStatus, jqXHR] = args;

console.log('done', jqXHR.status);
})
.catch((...args) => { // fail
const [jqXHR, textStatus, errorThrown] = args;

console.log('fail', jqXHR.status);
console.log(textStatus);
console.log(errorThrown);
})
});

Python 代码

#views
@require_http_methods(["POST"])
def GroupRequestAdd(request):
group_id = request.POST.get('group')
group_id = group.objects.get(id=group_id)
request_add = belong.objects.create(user=request.user,group=group_id)
return HttpResponse("ajax is done!")

最佳答案

简而言之,您将从 django View 返回一串文本,该文本不是有效的 JSON 字符串;因此你的 javascript 无法将其解析为“有效”json。

有问题的行是return HttpResponse("ajax is done!")。相反,将其更改为返回 json。

return HttpResponse(json.dumps({'status': 'ajax is done!'}))

或者,修改您的 jquery 以处理 html。这可以通过将行 'dataType': 'json', 更改为 'dataType': 'html', 来完成。

关于javascript - 我无法解决这个 "parsererror"ajax 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com