[問題] django抓不到POST的資料
各位前輩好,
這兩天用django在練習,寫了一隻用ajax以POST方式送表單的程式,
可是不知道為什麼,雖然在瀏覽器(Chrome)可以看到POST傳出去的資料是正確的,
但是在程式讀取時卻發現request.POST是一個空的dictionary
大致的程式碼如下:
AJAX:
var name = $("input#Name").val();
var id = $("input#Id").val();
$.ajax({
url: "register",
type: "POST",
dataType: "json",
contentType: "application/json",
data: {
id: id,
name: name
},
success: function(result){
....(此處正常執行)....
}
error: fuction(){
....
}
基本上上面的程式碼都是可以正常運作的,
在瀏覽器的開發工具內可以看到資料都有出現。
view.py:
....
from django.views.decorators.csrf import csrf_protect
....
@csrf_protect
def register(request):
if request.method == 'POST':
if request.is_ajax():
id = request.POST.get('id')
name = request.POST.get('name')
.... 略
另外還有設定csrf_token,看起來應該都有正常運作
設定方式是在ajax程式碼之前加上下面這一段:
var csrftoken = $.cookie('csrftoken');
function csrfSafeMethod(method) {
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
在form裡面也有寫{% csrf_token %}
看起來應該是可以順利執行,但是資料POST之後就消失了...
求各位前輩指點,謝謝><
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.113.50
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1461249357.A.CDE.html
推
04/22 00:35, , 1F
04/22 00:35, 1F
→
04/22 01:22, , 2F
04/22 01:22, 2F
→
04/22 01:22, , 3F
04/22 01:22, 3F
→
04/22 01:23, , 4F
04/22 01:23, 4F
→
04/22 01:40, , 5F
04/22 01:40, 5F
→
04/22 02:38, , 6F
04/22 02:38, 6F
Python 近期熱門文章
PTT數位生活區 即時熱門文章