首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在django视图中无法使用PUT Ajax请求接收数据值

在django视图中无法使用PUT Ajax请求接收数据值
EN

Stack Overflow用户
提问于 2019-11-17 00:07:24
回答 1查看 27关注 0票数 0

我正在执行一个PUT Ajax请求,在data参数中发送一个值,但是在我的django视图中没有收到任何数据。

这是我的代码:

代码语言:javascript
运行
复制
function wordUpdate(){
    $.ajax({
        url:'/socialanalyzer/dictionary_update/',
        headers: { "X-CSRFToken": $.cookie("csrftoken") },
        type: 'PUT',
        data: {
                word_id: temporalWordToEdit
        },success: function(data) {
              if (data.code==200) {
                alertify.success('Word modified successfully');
                var delayInMilliseconds = 2000;
                setTimeout(function() {
                  location.reload(true);
                }, delayInMilliseconds);
              }else{
                console.log('Error, status:',data.code);
                alertify.error('Error updating the word');
              }
            }
        })
}

views.py

代码语言:javascript
运行
复制
def put(self, request, *args, **kwargs):
    try:
        if request.method == 'PUT' and request.is_ajax():
        import pdb;pdb.set_trace()

我是否正确地传递了此信息?这应该是有效的,但我收到了空数据:

代码语言:javascript
运行
复制
(Pdb) request.GET
<QueryDict: {}>

我也尝试过用JSON.stringify函数发送数据,但得到了相同的结果:

代码语言:javascript
运行
复制
    var word_id = { 'word_id': temporalWordToEdit };
    $.ajax({
        url:'/socialanalyzer/dictionary_update/',
        headers: { "X-CSRFToken": $.cookie("csrftoken") },
        type: 'PUT',
        data: JSON.stringify(word_id)

我收到了值,但我没有将其作为数据发送,而是直接在url中发送,如下所示:

代码语言:javascript
运行
复制
        url:'/socialanalyzer/dictionary_update/?word_id='+temporalWordToEdit,
代码语言:javascript
运行
复制
(Pdb) request.GET
<QueryDict: {'word_id': ['1']}>

我不知道这是正确的方式还是我做错了什么。我知道在PUT请求中,您试图更新实例,但是在url中发送id实例而不是在data参数中发送id实例是正确的吗?

提前感谢,如有任何帮助,将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2019-11-18 12:56:55

我找到了我自己问题的答案。根据这个thread,在PUT Ajax请求中,参数作为主体发送,而不是作为查询字符串发送,所以在django中,我得到的值是这样的:request.body

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58892621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档