通过ajax发布JSON数据,而在视图.py

2024-09-27 07:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图通过AJAX发布JSON数据并通过视图.py(django框架的一部分)。在

下面是我使用ajax发送数据的客户端代码:

<script type="text/javascript">
    var myEvent = {
        user_token: { 
            userid: 1    
        }, 
        title: "test title", 
        privilege: "public"
    };
    console.log($.toJSON(myEvent))

    $.ajax({
        url: '/gallery/new_report/',
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        data: $.toJSON(myEvent),
        dataType: 'text',
        success: function(result) {
            alert(result);
        },
        error: function(ts) {
            alert("fail");
        }
    });
</script>

然后函数视图.py公司名称:

^{pr2}$

上面的代码不起作用,但抛出一个异常:

No JSON object could be decoded

但是如果我取消注释这个函数中的注释行,HttpResponse将返回正确的JSON字符串。在

在这种情况下,如何通过ajax获得正确的JSON数据?在


Tags: 数据代码textpy视图jsontitletype
2条回答

因为body是作为字节字符串发送的,所以

def new_report(request):
    #return HttpResponse(request.body)
    parameters = json.loads(request.body.decode(encoding='UTF-8'))
    ...

可能就是你要找的

我只是把别人在评论中已经说过的话放在一起。在

我还没有测试代码,但它应该能正常工作。在

<script type="text/javascript">
var myEvent = {
    user_token: { 
        userid: 1    
    }, 
    title: "test title", 
    privilege: "public"
};
console.log(myEvent)

$.ajax({
    url: '/gallery/new_report/',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: {'eventValues': myEvent},
    dataType: 'text',
    success: function(result) {
        alert(result);
    },
    error: function(ts) {
        alert("fail");
    }
});

和python视图

^{pr2}$

相关问题 更多 >

    热门问题