【发布时间】:2019-11-16 16:07:23
【问题描述】:
我正在执行 PUT Ajax 请求,发送数据参数中的值,但我的 django 视图中没有收到任何数据。
这是我的代码:
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
def put(self, request, *args, **kwargs):
try:
if request.method == 'PUT' and request.is_ajax():
import pdb;pdb.set_trace()
我是否正确传递了这个?这应该可行,但我收到空数据:
(Pdb) request.GET
<QueryDict: {}>
我也尝试使用 JSON.stringify 函数发送数据,但得到相同的结果:
var word_id = { 'word_id': temporalWordToEdit };
$.ajax({
url:'/socialanalyzer/dictionary_update/',
headers: { "X-CSRFToken": $.cookie("csrftoken") },
type: 'PUT',
data: JSON.stringify(word_id)
我收到了值,但我没有将其作为数据发送,而是直接在 url 中发送,如下所示:
url:'/socialanalyzer/dictionary_update/?word_id='+temporalWordToEdit,
(Pdb) request.GET
<QueryDict: {'word_id': ['1']}>
我不知道这是正确的方法还是我做错了什么。我了解在 PUT 请求中,您尝试更新实例,但是在 url 中而不是在 data 参数中发送 id 实例是正确的?
提前感谢,任何帮助将不胜感激
【问题讨论】: