私のアプリでは、クライアントブラウザからサーバーに送信する必要のあるデータのカテゴリがいくつかあります。バックエンドはDjangoにあります。Ajaxを使用してデータをDjangoのビュー関数にPOSTしてから、クライアントに何かを返そうとしています。私が試したコードは次のとおりです。
Django urls.pyの場合:
(r'^testPost/', testPost),
Djangoビュー機能:
def testPost(request):
print request
if request.method == 'GET':
rID = request.GET['rID']
rName = request.GET['rName']
elif request.method == 'POST':
rID = request.POST['rID']
rName = request.POST['rName']
return HttpResponse("ID: " + str(rID) + " and Name: " + str(rName))
フロントエンドAJAX呼び出し(ExtJS 3.3):
Ext.Ajax.request({
url: 'XXXX/testPost/?',
method: 'POST',
jsonData: Ext.encode({
"rID": 1333,
"rName": 'test'
}),
headers: {
'Content-Type': 'application/json'
},
success: function (response, opts){
console.log(response.responseText);
},
failure:function (response, opts){
console.log(response.responseText);
}
});
URL設定に問題があるようです。エラー応答がありました:
Some unexpected error occurred. Error text was: HTTP Error 403: FORBIDDEN
更新: 1。ldiqualのアドバイスに基づいて、
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
ビュースクリプトで
ExtJS ajaxリクエストコードをjsonDataの使用からparamsに変更しました:
params:{"rID":1333、 "rName":'test'}
私の場合、問題は解決しました。